or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-7/

{
  "context": "This criteria evaluates how well the engineer uses @opentelemetry/instrumentation-http and @opentelemetry/instrumentation-express to implement integrated request filtering that prevents specific routes from being traced at the HTTP layer, avoiding partial traces.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "HTTP instrumentation setup",
      "description": "Correctly imports and registers HttpInstrumentation from @opentelemetry/instrumentation-http with the NodeTracerProvider",
      "max_score": 15
    },
    {
      "name": "Express instrumentation setup",
      "description": "Correctly imports and registers ExpressInstrumentation from @opentelemetry/instrumentation-express with the NodeTracerProvider",
      "max_score": 15
    },
    {
      "name": "ignoreIncomingRequestHook usage",
      "description": "Uses the ignoreIncomingRequestHook configuration option in HttpInstrumentation to filter requests at the HTTP layer",
      "max_score": 25
    },
    {
      "name": "Request filtering logic",
      "description": "Implements the hook function to return true for /health and /metrics endpoints, preventing root span creation for these routes",
      "max_score": 20
    },
    {
      "name": "Instrumentation registration order",
      "description": "Registers instrumentations before importing Express to ensure proper patching of the Express module",
      "max_score": 10
    },
    {
      "name": "TracerProvider configuration",
      "description": "Creates and configures a NodeTracerProvider from @opentelemetry/sdk-trace-node and registers it globally",
      "max_score": 10
    },
    {
      "name": "Span exporter setup",
      "description": "Configures an exporter (such as ConsoleSpanExporter) to verify span creation behavior",
      "max_score": 5
    }
  ]
}