or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-6/

{
  "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
    }
  ]
}