diff --git a/.changesets/config_rreg_subgraph_insights_config_preview.md b/.changesets/config_rreg_subgraph_insights_config_preview.md new file mode 100644 index 0000000000..f21b785f9f --- /dev/null +++ b/.changesets/config_rreg_subgraph_insights_config_preview.md @@ -0,0 +1,10 @@ +### [Subgraph Insights] Subgraph metrics config flag now in preview ([PR #8200](https://github.com/apollographql/router/pull/8200)) +The `subgraph_metrics` config flag which powers the Studio `Subgraph Insights` feature is being promoted from `experimental` to `preview`. +The flag name has been updated from `experimental_subgraph_metrics` to +```yaml +telemetry: + apollo: + preview_subgraph_metrics: true +``` + +By [@rregitsky](https://github.com/rregitsky) in https://github.com/apollographql/router/pull/8200 diff --git a/apollo-router/src/configuration/migrations/2040-preview_subgraph_metrics.yaml b/apollo-router/src/configuration/migrations/2040-preview_subgraph_metrics.yaml new file mode 100644 index 0000000000..c4447eb547 --- /dev/null +++ b/apollo-router/src/configuration/migrations/2040-preview_subgraph_metrics.yaml @@ -0,0 +1,5 @@ +description: Subgraph metrics are now in preview +actions: + - type: move + from: telemetry.apollo.experimental_subgraph_metrics + to: telemetry.apollo.preview_subgraph_metrics diff --git a/apollo-router/src/configuration/snapshots/apollo_router__configuration__tests__schema_generation.snap b/apollo-router/src/configuration/snapshots/apollo_router__configuration__tests__schema_generation.snap index 44dc04e235..e49e0c9a84 100644 --- a/apollo-router/src/configuration/snapshots/apollo_router__configuration__tests__schema_generation.snap +++ b/apollo-router/src/configuration/snapshots/apollo_router__configuration__tests__schema_generation.snap @@ -1,6 +1,7 @@ --- source: apollo-router/src/configuration/tests.rs expression: "&schema" +snapshot_kind: text --- { "$schema": "http://json-schema.org/draft-07/schema#", @@ -1511,11 +1512,6 @@ expression: "&schema" "$ref": "#/definitions/Protocol", "description": "#/definitions/Protocol" }, - "experimental_subgraph_metrics": { - "default": false, - "description": "Enable sending additional subgraph metrics to Apollo Studio via OTLP", - "type": "boolean" - }, "field_level_instrumentation_sampler": { "$ref": "#/definitions/SamplerOption", "description": "#/definitions/SamplerOption" @@ -1528,6 +1524,11 @@ expression: "&schema" "$ref": "#/definitions/SamplerOption", "description": "#/definitions/SamplerOption" }, + "preview_subgraph_metrics": { + "default": false, + "description": "Enable sending additional subgraph metrics to Apollo Studio via OTLP", + "type": "boolean" + }, "send_headers": { "$ref": "#/definitions/ForwardHeaders", "description": "#/definitions/ForwardHeaders" diff --git a/apollo-router/src/configuration/snapshots/apollo_router__configuration__tests__upgrade_old_configuration@apollo_subgraph_metrics.yaml.snap b/apollo-router/src/configuration/snapshots/apollo_router__configuration__tests__upgrade_old_configuration@apollo_subgraph_metrics.yaml.snap new file mode 100644 index 0000000000..9aba30d465 --- /dev/null +++ b/apollo-router/src/configuration/snapshots/apollo_router__configuration__tests__upgrade_old_configuration@apollo_subgraph_metrics.yaml.snap @@ -0,0 +1,9 @@ +--- +source: apollo-router/src/configuration/tests.rs +expression: new_config +snapshot_kind: text +--- +--- +telemetry: + apollo: + preview_subgraph_metrics: true diff --git a/apollo-router/src/configuration/testdata/migrations/apollo_subgraph_metrics.yaml b/apollo-router/src/configuration/testdata/migrations/apollo_subgraph_metrics.yaml new file mode 100644 index 0000000000..0af7ccc4ed --- /dev/null +++ b/apollo-router/src/configuration/testdata/migrations/apollo_subgraph_metrics.yaml @@ -0,0 +1,3 @@ +telemetry: + apollo: + experimental_subgraph_metrics: true diff --git a/apollo-router/src/plugins/telemetry/apollo.rs b/apollo-router/src/plugins/telemetry/apollo.rs index 9b3c700451..b3e98f5a81 100644 --- a/apollo-router/src/plugins/telemetry/apollo.rs +++ b/apollo-router/src/plugins/telemetry/apollo.rs @@ -121,7 +121,7 @@ pub(crate) struct Config { pub(crate) experimental_local_field_metrics: bool, /// Enable sending additional subgraph metrics to Apollo Studio via OTLP - pub(crate) experimental_subgraph_metrics: bool, + pub(crate) preview_subgraph_metrics: bool, } #[derive(Debug, Clone, Deserialize, JsonSchema, Default)] @@ -256,7 +256,7 @@ impl Default for Config { signature_normalization_algorithm: ApolloSignatureNormalizationAlgorithm::default(), experimental_local_field_metrics: false, metrics_reference_mode: ApolloMetricsReferenceMode::default(), - experimental_subgraph_metrics: false, + preview_subgraph_metrics: false, } } } diff --git a/apollo-router/src/plugins/telemetry/config_new/apollo/instruments.rs b/apollo-router/src/plugins/telemetry/config_new/apollo/instruments.rs index 0be663c45c..ec6b116acb 100644 --- a/apollo-router/src/plugins/telemetry/config_new/apollo/instruments.rs +++ b/apollo-router/src/plugins/telemetry/config_new/apollo/instruments.rs @@ -118,7 +118,7 @@ impl ApolloSubgraphInstruments { let attribute_count = selectors.custom.len() + 1; // 1 for subgraph_name on attributes let apollo_router_operations_fetch_duration = - apollo_config.experimental_subgraph_metrics.then(|| { + apollo_config.preview_subgraph_metrics.then(|| { CustomHistogram::builder() .increment(Increment::Duration(Instant::now())) .attributes(Vec::with_capacity(attribute_count)) @@ -236,7 +236,7 @@ impl ApolloConnectorInstruments { let attribute_count = selectors.custom.len() + 1; // 1 for subgraph_name on attributes let apollo_router_operations_fetch_duration = - apollo_config.experimental_subgraph_metrics.then(|| { + apollo_config.preview_subgraph_metrics.then(|| { CustomHistogram::builder() .increment(Increment::Duration(Instant::now())) .attributes(Vec::with_capacity(attribute_count)) diff --git a/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/connector_fetch_duration/metrics.snap b/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/connector_fetch_duration/metrics.snap index 1b4573aa39..2471fcc8ad 100644 --- a/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/connector_fetch_duration/metrics.snap +++ b/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/connector_fetch_duration/metrics.snap @@ -5,7 +5,7 @@ expression: "&metrics.all()" info: telemetry: apollo: - experimental_subgraph_metrics: true + preview_subgraph_metrics: true instrumentation: instruments: connector: diff --git a/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/connector_fetch_duration/router.yaml b/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/connector_fetch_duration/router.yaml index aac863bcc5..a745082985 100644 --- a/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/connector_fetch_duration/router.yaml +++ b/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/connector_fetch_duration/router.yaml @@ -1,6 +1,6 @@ telemetry: apollo: - experimental_subgraph_metrics: true + preview_subgraph_metrics: true instrumentation: instruments: connector: diff --git a/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/subgraph_fetch_duration/metrics.snap b/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/subgraph_fetch_duration/metrics.snap index df1e2d4808..ec890291fa 100644 --- a/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/subgraph_fetch_duration/metrics.snap +++ b/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/subgraph_fetch_duration/metrics.snap @@ -5,7 +5,7 @@ expression: "&metrics.all()" info: telemetry: apollo: - experimental_subgraph_metrics: true + preview_subgraph_metrics: true instrumentation: instruments: subgraph: diff --git a/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/subgraph_fetch_duration/router.yaml b/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/subgraph_fetch_duration/router.yaml index ca75086292..96a10039b6 100644 --- a/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/subgraph_fetch_duration/router.yaml +++ b/apollo-router/src/plugins/telemetry/config_new/fixtures/apollo/subgraph_fetch_duration/router.yaml @@ -1,6 +1,6 @@ telemetry: apollo: - experimental_subgraph_metrics: true + preview_subgraph_metrics: true instrumentation: instruments: subgraph: diff --git a/apollo-router/tests/integration/telemetry/apollo_otel_metrics.rs b/apollo-router/tests/integration/telemetry/apollo_otel_metrics.rs index e9f0f483a1..0bd7d4a693 100644 --- a/apollo-router/tests/integration/telemetry/apollo_otel_metrics.rs +++ b/apollo-router/tests/integration/telemetry/apollo_otel_metrics.rs @@ -592,7 +592,7 @@ async fn test_subgraph_request_emits_histogram() { experimental_otlp_metrics_protocol: http batch_processor: scheduled_delay: 10ms - experimental_subgraph_metrics: true + preview_subgraph_metrics: true include_subgraph_errors: all: true "#, @@ -652,7 +652,7 @@ async fn test_failed_subgraph_request_emits_histogram() { experimental_otlp_metrics_protocol: http batch_processor: scheduled_delay: 10ms - experimental_subgraph_metrics: true + preview_subgraph_metrics: true include_subgraph_errors: all: true "#, @@ -713,7 +713,7 @@ async fn test_connector_request_emits_histogram() { experimental_otlp_metrics_protocol: http batch_processor: scheduled_delay: 10ms - experimental_subgraph_metrics: true + preview_subgraph_metrics: true include_subgraph_errors: all: true "#, @@ -787,7 +787,7 @@ async fn test_failed_connector_request_emits_histogram() { experimental_otlp_metrics_protocol: http batch_processor: scheduled_delay: 10ms - experimental_subgraph_metrics: true + preview_subgraph_metrics: true traffic_shaping: connector: sources: