docs
evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
{
"context": "This evaluation assesses how well the implementation uses @opentelemetry/instrumentation-express to enable automatic context propagation through Express middleware chains and async operations. The focus is on proper instrumentation setup and ensuring trace context flows correctly across async boundaries.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Express Instrumentation Registration",
"description": "The @opentelemetry/instrumentation-express package is properly registered with the OpenTelemetry instrumentation framework using registerInstrumentations() or similar mechanism before the Express app is created",
"max_score": 25
},
{
"name": "Tracer Provider Setup",
"description": "A NodeTracerProvider from @opentelemetry/sdk-trace-node is created and configured, and the Express instrumentation is enabled through this provider to ensure trace context propagation works",
"max_score": 20
},
{
"name": "Context Binding Approach",
"description": "The implementation relies on @opentelemetry/instrumentation-express's automatic context binding for middleware rather than manually managing context with context.with() or context.bind(), demonstrating understanding that the instrumentation handles this automatically",
"max_score": 20
},
{
"name": "Async Middleware Pattern",
"description": "Async middleware functions use async/await or return Promises, allowing @opentelemetry/instrumentation-express to properly track spans through asynchronous operations without explicit context management",
"max_score": 15
},
{
"name": "Instrumentation Initialization Order",
"description": "The OpenTelemetry instrumentation (including ExpressInstrumentation) is initialized and registered before requiring/importing the Express module, ensuring the Express package is properly patched for automatic instrumentation",
"max_score": 10
},
{
"name": "Span Exporter Configuration",
"description": "A span exporter (such as ConsoleSpanExporter or similar) is configured with the tracer provider to demonstrate that spans are being generated and can be observed",
"max_score": 10
}
]
}