OpenTelemetry Remix Instrumentation for Node.js
This module provides automatic instrumentation for remix
.
Installation
npm install --save opentelemetry-instrumentation-remix
Supported Versions
Cloudflare Worker Warning
This instrumentation does NOT support Cloudflare Workers. For more details follow opentelemetry-js issue #1214.
Usage
For further automatic instrumentation instruction see the @opentelemetry/instrumentation package.
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const { RemixInstrumentation } = require('opentelemetry-instrumentation-remix');
const tracerProvider = new NodeTracerProvider();
tracerProvider.register();
registerInstrumentations({
instrumentations: [
new RemixInstrumentation()
]
});
Configuration
Name | Type | Default Value | Description |
---|
actionFormDataAttributes | Record<string, boolean | string> | { _action: "actionType" } | Mapping of FormData field to span attribute names. |
legacyErrorAttributes | boolean | false | Whether to emit errors in the form of span attributes, as well as in span exception events. |
Instrumentation
requestHandler
Emitted for every request into remix server.
Operation | Example | Notes |
---|
remix.request [routePath] | remix.request /jokes/:jokeId | If the request does not match a route, the name of the span will be remix.request |
Attribute | Description | Example Value |
---|
code.function | Name of executed function | "requestHandler" |
http.method | HTTP method | "POST" |
http.url | HTTP URL | "https://remix.jokes/jokes/new?_data=routes%2Fjokes%2Fnew" |
http.route | HTTP route path, added if the request matches a route | "/jokes/:jokeId" |
http.status_code | Response status code | 200 |
match.route.id | Remix matched route ID, added if the request matches a route | "routes/jokes/$jokeId" |
error | Added if error detected and if legacyErrorAttributes enabled | true |
exception.message | Error message, if legacyErrorAttributes enabled and if applicable | "Kaboom!" |
exception.stacktrace | Error stacktrace, if legacyErrorAttributes enabled and if applicable | [stacktrace] |
Status Code | Description |
---|
SpanStatusCode.ERROR | When an exception occurs during evaluation |
Event | Attributes | Description |
---|
Exception | exception.message | Error message, if applicable |
| exception.stacktrace | Error stacktrace, if applicable |
loader
Emitted for every loader
called.
Operation | Example |
---|
LOADER [routeId] | LOADER routes/jokes/$jokeId |
Attribute | Description | Example Value |
---|
code.function | Name of executed function | "loader" |
http.method | HTTP method | "POST" |
http.url | HTTP URL | "https://remix.jokes/jokes/new?_data=routes%2Fjokes%2Fnew" |
http.status_code | Response status code | 200 |
match.route.id | Remix matched route id | "routes/jokes/$jokeId" |
match.params.[paramName] | Value for each remix matched param | [match.params.jokeId]: 23fc7bcf-2d35-4c70-877f-338eca1fd3ef" |
error | Added if error detected and if legacyErrorAttributes enabled | true |
exception.message | Error message, if legacyErrorAttributes enabled and if applicable | "Kaboom!" |
exception.stacktrace | Error stacktrace, if legacyErrorAttributes enabled and if applicable | [stacktrace] |
Status Code | Description |
---|
SpanStatusCode.ERROR | When an exception occurs during evaluation |
Event | Attributes | Description |
---|
Exception | exception.message | Error message, if applicable |
| exception.stacktrace | Error stacktrace, if applicable |
action
Emitted for every action
called.
Operation | Example |
---|
ACTION [routeId] | ACTION routes/jokes/new |
Attribute | Description | Example Value |
---|
code.function | Name of executed function | "action" |
http.method | HTTP method | "POST" |
http.url | HTTP URL | "https://remix.jokes/jokes/new?_data=routes%2Fjokes%2Fnew" |
http.status_code | Response status code | 200 |
match.route.id | Remix matched route id | "routes/jokes/$jokeId" |
match.params.[paramName] | Value for each remix matched param | [match.params.jokeId]: "23fc7bcf-2d35-4c70-877f-338eca1fd3ef" |
formData.[fieldName] | Value for each configured FormData field | [formData.actionType]: "createJoke" |
error | Added if error detected and if legacyErrorAttributes enabled | true |
exception.message | Error message, if legacyErrorAttributes enabled and if applicable | "Kaboom!" |
exception.stacktrace | Error stacktrace, if legacyErrorAttributes enabled and if applicable | [stacktrace] |
Status Code | Description |
---|
SpanStatusCode.ERROR | When an exception occurs during evaluation |
Event | Attributes | Description |
---|
Exception | exception.message | Error message, if applicable |
| exception.stacktrace | Error stacktrace, if applicable |
License
Apache 2.0 - See LICENSE for more information.