or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-3/

{
  "context": "This criteria evaluates how well the engineer uses the @opentelemetry/instrumentation-express package to implement automatic span creation for Express.js middleware, routers, and request handlers. The focus is on proper instrumentation setup and package usage.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Instrumentation Registration",
      "description": "Uses ExpressInstrumentation class from @opentelemetry/instrumentation-express and registers it with NodeTracerProvider or registerInstrumentations()",
      "max_score": 25
    },
    {
      "name": "TracerProvider Setup",
      "description": "Creates and configures a NodeTracerProvider from @opentelemetry/sdk-trace-node and registers it as the global tracer provider",
      "max_score": 20
    },
    {
      "name": "Span Processor Configuration",
      "description": "Configures a span processor (such as SimpleSpanProcessor or BatchSpanProcessor) and adds it to the tracer provider",
      "max_score": 15
    },
    {
      "name": "Span Exporter Setup",
      "description": "Configures a span exporter (such as ConsoleSpanExporter or InMemorySpanExporter) to collect the automatically created spans",
      "max_score": 15
    },
    {
      "name": "Instrumentation Timing",
      "description": "Registers the ExpressInstrumentation before requiring or importing the Express module to ensure proper automatic instrumentation",
      "max_score": 15
    },
    {
      "name": "Middleware Span Creation",
      "description": "Implementation allows automatic span creation for middleware functions without manual instrumentation code in the middleware themselves",
      "max_score": 5
    },
    {
      "name": "Router Span Creation",
      "description": "Implementation allows automatic span creation for Express Router instances without manual instrumentation in router code",
      "max_score": 5
    }
  ]
}