Skip to content

Commit 23ebbd2

Browse files
authored
Merge pull request #391 from apollographql/fix/telemetry-attributes-2
Fix/telemetry attributes 2
2 parents a39eb0e + d97a56f commit 23ebbd2

File tree

4 files changed

+25
-7
lines changed

4 files changed

+25
-7
lines changed

crates/apollo-mcp-server/src/operations/operation.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ impl Operation {
139139
}
140140

141141
/// Generate a description for an operation based on documentation in the schema
142-
#[tracing::instrument(skip(comments, tree_shaker, graphql_schema))]
142+
#[tracing::instrument(skip(comments, tree_shaker, graphql_schema, operation_def), fields(operation_type = ?operation_def.operation_type, operation_id = ?operation_def.name))]
143143
fn tool_description(
144144
comments: Option<String>,
145145
tree_shaker: &mut SchemaTreeShaker,
@@ -427,7 +427,7 @@ pub fn operation_name(
427427
.to_string())
428428
}
429429

430-
#[tracing::instrument(skip(source_text))]
430+
#[tracing::instrument(skip_all, fields(operation_type = ?operation_definition.operation_type, operation_id = ?operation_definition.name))]
431431
pub fn variable_description_overrides(
432432
source_text: &str,
433433
operation_definition: &Node<OperationDefinition>,
@@ -459,7 +459,7 @@ pub fn variable_description_overrides(
459459
argument_overrides_map
460460
}
461461

462-
#[tracing::instrument(skip(source_text))]
462+
#[tracing::instrument(skip_all, fields(operation_type = ?operation_definition.operation_type, operation_id = ?operation_definition.name))]
463463
pub fn find_opening_parens_offset(
464464
source_text: &str,
465465
operation_definition: &Node<OperationDefinition>,

crates/apollo-mcp-server/src/server/states/running.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,24 +176,34 @@ impl Running {
176176
}
177177

178178
impl ServerHandler for Running {
179-
#[tracing::instrument(skip(self, _request))]
179+
#[tracing::instrument(skip_all, fields(apollo.mcp.client_name = request.client_info.name, apollo.mcp.client_version = request.client_info.version))]
180180
async fn initialize(
181181
&self,
182-
_request: InitializeRequestParam,
182+
request: InitializeRequestParam,
183183
context: RequestContext<RoleServer>,
184184
) -> Result<InitializeResult, McpError> {
185185
let meter = &meter::METER;
186+
let attributes = vec![
187+
KeyValue::new(
188+
TelemetryAttribute::ClientName.to_key(),
189+
request.client_info.name.clone(),
190+
),
191+
KeyValue::new(
192+
TelemetryAttribute::ClientVersion.to_key(),
193+
request.client_info.version.clone(),
194+
),
195+
];
186196
meter
187197
.u64_counter(TelemetryMetric::InitializeCount.as_str())
188198
.build()
189-
.add(1, &[]);
199+
.add(1, &attributes);
190200
// TODO: how to remove these?
191201
let mut peers = self.peers.write().await;
192202
peers.push(context.peer);
193203
Ok(self.get_info())
194204
}
195205

196-
#[tracing::instrument(skip(self, context, request), fields(apollo.mcp.tool_name = request.name.as_ref(), apollo.mcp.request_id = %context.id.clone()))]
206+
#[tracing::instrument(skip_all, fields(apollo.mcp.tool_name = request.name.as_ref(), apollo.mcp.request_id = %context.id.clone()))]
197207
async fn call_tool(
198208
&self,
199209
request: CallToolRequestParam,

crates/apollo-mcp-server/src/telemetry_attributes.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ impl TelemetryAttribute {
2323
TelemetryAttribute::RawOperation => {
2424
Key::from_static_str(TelemetryAttribute::RawOperation.as_str())
2525
}
26+
TelemetryAttribute::ClientName => {
27+
Key::from_static_str(TelemetryAttribute::ClientName.as_str())
28+
}
29+
TelemetryAttribute::ClientVersion => {
30+
Key::from_static_str(TelemetryAttribute::ClientVersion.as_str())
31+
}
2632
}
2733
}
2834

crates/apollo-mcp-server/telemetry.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ operation_source = "The operation source - either operation (local file/op colle
55
request_id = "The request id"
66
success = "Sucess flag indicator"
77
raw_operation = "Graphql operation text and metadata used for Tool generation"
8+
client_name = "The client name that initializes with the MCP Server"
9+
client_version = "The client version that initializes with the MCP Server"
810

911
[metrics.apollo.mcp]
1012
"initialize.count" = "Number of times initialize has been called"

0 commit comments

Comments
 (0)