opentelemetry-instrumentation-remix
v0.8.0
Published
open telemetry instrumentation for the `remix` package
Downloads
226,274
Readme
OpenTelemetry Remix Instrumentation for Node.js
This module provides automatic instrumentation for remix.
Installation
npm install --save opentelemetry-instrumentation-remixSupported Versions
1.1.0 - 2.x
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.
