apollographql / apollographql/apollo-tooling

Datadog Integration - Lack of granularity around metrics being emitted to Datadog

Open
#2,078 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
3k
Forks
460
PR merge metrics
No merged PRs in 30d

Description

**Intended outcome:**
* `apollo.engine.operations.count` should emit which upstream service it is trying to call (e.g. Account service, Config service, etc)

* `apollo.engine.operations.error_count`) emit the upstream service and the error code filter. This way, we can achieve a more useful monitor as right now, by default it logs every error (including 404 / `Error.NotFound`).

As an example, I've attached our existing gRPC monitor which has all of these fields (existing and requested)
![image](https://user-images.githubusercontent.com/4412200/90177384-4f486e80-dd5f-11ea-9ad0-e6da393b1737.png)

**Actual outcome:**
![image](https://user-images.githubusercontent.com/4412200/90177097-dd702500-dd5e-11ea-8ce9-5e3b9239024d.png)

It basically only has:
1. variant (prod, staging)
2. operation
3. service (the graphql server name)

Contributor guide

Open the contributing guide

Research direction

Start by locating where the apollo.engine.operations.count and apollo.engine.operations.error_count metrics are emitted, then compare their current fields with the requested upstream service and error-code dimensions. Done means the metrics expose those fields so monitors can distinguish upstream services and filter error codes such as 404/Error.NotFound.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
observability
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.