Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(spans): Ingest span metrics for http spans #3111

Merged
merged 5 commits into from
Feb 15, 2024

Conversation

phacops
Copy link
Contributor

@phacops phacops commented Feb 14, 2024

For an unknown reason, we stopped ingesting them on January 7th when we shouldn't have.

I also removed the test for all_modules as this feature doesn't exist anymore.

@phacops phacops requested a review from a team as a code owner February 14, 2024 20:49
@phacops phacops requested a review from jjbayer February 14, 2024 21:25
Copy link
Member

@jjbayer jjbayer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For an unknown reason

@phacops the decision to stop ingesting them was deliberate & coordinated: #2907 (comment)

Pressing "Request changes" because of open questions.

@@ -73,6 +73,8 @@ fn span_metrics() -> impl IntoIterator<Item = MetricSpec> {

let is_mobile_sdk = RuleCondition::eq("span.sentry_tags.mobile", "true");

let is_http = RuleCondition::eq("span.op", "http.client");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need exclusive time metrics for all http.client spans? Or is there a way to narrow it down further?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤔 I think we need it for everything, yeah. Since the HTTP module needs to show the total time spent on http spans, I don't think we can omit metrics for any spans

@@ -216,7 +225,7 @@ fn span_metrics() -> impl IntoIterator<Item = MetricSpec> {
.always(),
Tag::with_key("span.domain")
.from_field("span.sentry_tags.domain")
.when(is_db.clone() | is_resource.clone()),
.when(is_db.clone() | is_resource.clone() | is_http.clone()),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gggritso Do we already know what tag combinations / filters we want to query exclusive_time by? Does this config accurately reflect those access patterns?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have initial product requirements, so we do know, even though it might change:

  • environment for environment filters
  • span.domain, to break down and filter by domain in the table, and possibly render top 5 domains charts
  • span.status_code, to show 2xx, 4xx, and 5xx counts by span domain and/or by span transaction
  • transaction, to show a table of transactions for a given span domain, filter by transaction
  • transaction.method so we can filter by correct endpoint method in the sample panel

The config looks good to me 👍🏻

@jjbayer jjbayer requested a review from gggritso February 15, 2024 09:15
Copy link
Member

@jjbayer jjbayer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's ship it, we'll see what impact this has on total cardinality.

@phacops phacops enabled auto-merge (squash) February 15, 2024 17:01
@phacops phacops merged commit 358c8bf into master Feb 15, 2024
20 checks passed
@phacops phacops deleted the pierre/spans-enable-span-metrics-for-http-spans branch February 15, 2024 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants