Skip to content

[do not merge] v0.27 upgrade#8368

Closed
meryl-c wants to merge 25 commits intodevfrom
meryl_PULSR-1850
Closed

[do not merge] v0.27 upgrade#8368
meryl-c wants to merge 25 commits intodevfrom
meryl_PULSR-1850

Conversation

@meryl-c
Copy link
Copy Markdown
Contributor

@meryl-c meryl-c commented Oct 1, 2025


Checklist

Complete the checklist (and note appropriate exceptions) before the PR is marked ready-for-review.

  • PR description explains the motivation for the change and relevant context for reviewing
  • PR description links appropriate GitHub/Jira tickets (creating when necessary)
  • Changeset is included for user-facing changes
  • Changes are compatible1
  • Documentation2 completed
  • Performance impact assessed and acceptable
  • Metrics and logs are added3 and documented
  • Tests added and passing4
    • Unit tests
    • Integration tests
    • Manual tests, as necessary

Exceptions

Note any exceptions here

Notes

Footnotes

  1. It may be appropriate to bring upcoming changes to the attention of other (impacted) groups. Please endeavour to do this before seeking PR approval. The mechanism for doing this will vary considerably, so use your judgement as to how and when to do this.

  2. Configuration is an important part of many changes. Where applicable please try to document configuration examples.

  3. A lot of (if not most) features benefit from built-in observability and debug-level logs. Please read this guidance on metrics best-practices.

  4. Tick whichever testing boxes are applicable. If you are adding Manual Tests, please document the manual testing (extensively) in the Exceptions.

…r` and `SpanExporterBuilder` became private
…Instrument, have global meter provider impl `From<MeterProvider`, fix macros
@meryl-c meryl-c requested review from a team October 1, 2025 19:37
@meryl-c meryl-c marked this pull request as draft October 1, 2025 19:37
@apollo-librarian
Copy link
Copy Markdown
Contributor

apollo-librarian bot commented Oct 1, 2025

✅ Docs preview ready

The preview is ready to be viewed. View the preview

File Changes

63 new, 10 changed, 0 removed
+ graphos/routing/(latest)/observability/graphos/federated-trace-data.mdx
+ graphos/routing/(latest)/observability/graphos/graphos-reporting.mdx
+ graphos/routing/(latest)/observability/graphos/index.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/index.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-metrics.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-traces.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/dynatrace/dynatrace-metrics.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/dynatrace/dynatrace-traces.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/jaeger/jaeger-traces.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/new-relic/new-relic-otlp-metrics.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/new-relic/new-relic-otlp-traces.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/prometheus/otel-traces-to-prometheus.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/prometheus/prometheus-metrics.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/apm-guides/zipkin/zipkin-traces.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/conditions.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/events.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/instruments.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/selectors.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/spans.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/standard-attributes.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/standard-instruments.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/usage-guides/client-id-enforcement.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/usage-guides/debugging-client-requests.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/usage-guides/debugging-subgraph-requests.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/usage-guides/subgraph-error-inclusion.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/usage-guides/subgraph-instrumentation.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/telemetry-pipelines/log-exporters/overview.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/telemetry-pipelines/log-exporters/stdout.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/telemetry-pipelines/metrics-exporters/otlp.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/telemetry-pipelines/metrics-exporters/overview.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/telemetry-pipelines/trace-exporters/otlp.mdx
+ graphos/routing/(latest)/observability/router-telemetry-otel/telemetry-pipelines/trace-exporters/overview.mdx
+ graphos/routing/(latest)/observability/client-id-enforcement.mdx
+ graphos/routing/(latest)/observability/debugging-client-requests.mdx
+ graphos/routing/(latest)/observability/debugging-subgraph-requests.mdx
+ graphos/routing/(latest)/observability/federated-trace-data.mdx
+ graphos/routing/(latest)/observability/index.mdx
+ graphos/routing/(latest)/observability/otel-traces-to-prometheus.mdx
+ graphos/routing/(latest)/observability/otel.mdx
+ graphos/routing/(latest)/observability/subgraph-error-inclusion.mdx
+ graphos/routing/(latest)/observability/telemetry/index.mdx
+ graphos/routing/(latest)/observability/telemetry/instrumentation/conditions.mdx
+ graphos/routing/(latest)/observability/telemetry/instrumentation/events.mdx
+ graphos/routing/(latest)/observability/telemetry/instrumentation/instruments.mdx
+ graphos/routing/(latest)/observability/telemetry/instrumentation/selectors.mdx
+ graphos/routing/(latest)/observability/telemetry/instrumentation/spans.mdx
+ graphos/routing/(latest)/observability/telemetry/instrumentation/standard-attributes.mdx
+ graphos/routing/(latest)/observability/telemetry/instrumentation/standard-instruments.mdx
+ graphos/routing/(latest)/observability/telemetry/log-exporters/overview.mdx
+ graphos/routing/(latest)/observability/telemetry/log-exporters/stdout.mdx
+ graphos/routing/(latest)/observability/telemetry/metrics-exporters/datadog.mdx
+ graphos/routing/(latest)/observability/telemetry/metrics-exporters/dynatrace.mdx
+ graphos/routing/(latest)/observability/telemetry/metrics-exporters/new-relic.mdx
+ graphos/routing/(latest)/observability/telemetry/metrics-exporters/otlp.mdx
+ graphos/routing/(latest)/observability/telemetry/metrics-exporters/overview.mdx
+ graphos/routing/(latest)/observability/telemetry/metrics-exporters/prometheus.mdx
+ graphos/routing/(latest)/observability/telemetry/trace-exporters/datadog.mdx
+ graphos/routing/(latest)/observability/telemetry/trace-exporters/dynatrace.mdx
+ graphos/routing/(latest)/observability/telemetry/trace-exporters/jaeger.mdx
+ graphos/routing/(latest)/observability/telemetry/trace-exporters/new-relic.mdx
+ graphos/routing/(latest)/observability/telemetry/trace-exporters/otlp.mdx
+ graphos/routing/(latest)/observability/telemetry/trace-exporters/overview.mdx
+ graphos/routing/(latest)/observability/telemetry/trace-exporters/zipkin.mdx
* graphos/routing/(latest)/configuration/overview.mdx
* graphos/routing/(latest)/configuration/cli.mdx
* graphos/routing/(latest)/configuration/yaml.mdx
* graphos/routing/(latest)/customization/custom-binary.mdx
* graphos/routing/(latest)/performance/traffic-shaping.mdx
* graphos/routing/(latest)/query-planning/native-query-planner.mdx
* graphos/routing/(latest)/self-hosted/containerization/docker-router-only.mdx
* graphos/routing/(latest)/self-hosted/containerization/docker.mdx
* graphos/routing/(latest)/upgrade/from-router-v1.mdx
* graphos/routing/(latest)/_sidebar.yaml

Build ID: b2f2d8d70ca5270dce2359de
Build Logs: View logs

URL: https://www.apollographql.com/docs/deploy-preview/b2f2d8d70ca5270dce2359de

opentelemetry::Value::F64(v) => AttributeValue::F64(v),
opentelemetry::Value::String(v) => AttributeValue::String(v.into()),
opentelemetry::Value::Array(v) => AttributeValue::Array(v.into()),
_ => unreachable!(),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this actually unreachable? What are the variants of Value?

Copy link
Copy Markdown
Contributor Author

@meryl-c meryl-c Oct 1, 2025

Choose a reason for hiding this comment

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

I think so:

pub enum Value {
    /// bool values
    Bool(bool),
    /// i64 values
    I64(i64),
    /// f64 values
    F64(f64),
    /// String values
    String(StringValue),
    /// Array of homogeneous values
    Array(Array),
}

Comment on lines +22 to +25
mut _builder: MetricsBuilder,
_metrics_config: &MetricsCommon,
) -> Result<MetricsBuilder, BoxError> {
if !self.enabled {
return Ok(builder);
}
let exporter_builder: MetricsExporterBuilder = self.exporter(TelemetryDataKind::Metrics)?;
let exporter = exporter_builder.build_metrics_exporter(
(&self.temporality).into(),
Box::new(
CustomAggregationSelector::builder()
.boundaries(metrics_config.buckets.clone())
.build(),
),
)?;
todo!("We can uncomment this when MetricExporterBuilder is re-exported in v0.30.0");
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I admit that I recommended this solution; however, I had a misunderstanding. I was under the impression that each upgrade to versions between 0.24 up through 0.31 would be culminated in a single PR. I did not think that this upgrade would make it to dev. We should not commit open panics like this to dev.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

if I can't figure out a workaround, I won't merge this PR. I meant to just keep it in draft mode.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@meryl-c , thanks for the clarification. Sorry for any confusion I might have caused.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

no worries (:

Comment thread apollo-router/src/plugins/telemetry/otlp.rs
@meryl-c meryl-c changed the title v0.27 upgrade [do not merge] v0.27 upgrade Oct 1, 2025
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.

2 participants