or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-1/

{
  "context": "This criteria evaluates how well the engineer uses @opentelemetry/instrumentation-express to implement version-compatible testing utilities. The focus is on proper instrumentation setup, span collection, and validation across Express v4 and v5.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Instrumentation initialization",
      "description": "Correctly imports and registers ExpressInstrumentation using registerInstrumentations() or similar OpenTelemetry registration mechanism",
      "max_score": 20
    },
    {
      "name": "Tracer provider setup",
      "description": "Creates a NodeTracerProvider (or BasicTracerProvider) and configures it with an InMemorySpanExporter or similar exporter for span collection",
      "max_score": 15
    },
    {
      "name": "Express app creation",
      "description": "Creates Express v4 and v5 applications correctly, ensuring instrumentation is applied before routes are defined",
      "max_score": 15
    },
    {
      "name": "Span collection",
      "description": "Implements proper span retrieval from the exporter using methods like getFinishedSpans() to access collected trace data",
      "max_score": 15
    },
    {
      "name": "Span attribute verification",
      "description": "Validates span attributes specific to Express instrumentation such as 'http.route', 'express.type', or 'express.name' that indicate version-aware operation",
      "max_score": 20
    },
    {
      "name": "Version-specific behavior",
      "description": "Demonstrates understanding that instrumentation handles Express v4 and v5 transparently, without requiring different configuration or manual version detection",
      "max_score": 10
    },
    {
      "name": "Cleanup and resource management",
      "description": "Properly shuts down the tracer provider using shutdown() method and clears instrumentation state between tests",
      "max_score": 5
    }
  ]
}