Unverified Commit 84ec4c36 authored by Hong Minhee's avatar Hong Minhee
Browse files

Defaults to the global `TracerProvider`

parent 576d2eec
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -71,7 +71,9 @@ Explicit [`TracerProvider`] configuration

The `createFederation()` function accepts the
[`tracerProvider`](./federation.md#tracerprovider) option to explicitly
configure the [`TracerProvider`] for the OpenTelemetry SDK.
configure the [`TracerProvider`] for the OpenTelemetry SDK.  Note that if it's
omitted, Fedify will use the global default [`TracerProvider`] provided by
the OpenTelemetry SDK.

For example, if you want to use [Sentry] as the trace exporter, you can set up
the Sentry SDK and pass the [`TracerProvider`] provided by the Sentry SDK to the
+5 −6
Original line number Diff line number Diff line
import { SpanStatusCode, type TracerProvider } from "@opentelemetry/api";
import { SpanStatusCode, trace, type TracerProvider } from "@opentelemetry/api";
import { toASCII, toUnicode } from "node:punycode";
import metadata from "../deno.json" with { type: "json" };
import type { GetUserAgentOptions } from "../runtime/docloader.ts";
@@ -96,7 +96,8 @@ export interface GetActorHandleOptions extends NormalizeActorHandleOptions {
  userAgent?: GetUserAgentOptions | string;

  /**
   * The OpenTelemetry tracer provider.
   * The OpenTelemetry tracer provider.  If omitted, the global tracer provider
   * is used.
   * @since 1.3.0
   */
  tracerProvider?: TracerProvider;
@@ -130,10 +131,8 @@ export async function getActorHandle(
  actor: Actor | URL,
  options: GetActorHandleOptions = {},
): Promise<`@${string}@${string}` | `${string}@${string}`> {
  if (options.tracerProvider == null) {
    return await getActorHandleInternal(actor, options);
  }
  const tracer = options.tracerProvider.getTracer(
  const tracerProvider = options.tracerProvider ?? trace.getTracerProvider();
  const tracer = tracerProvider.getTracer(
    metadata.name,
    metadata.version,
  );
+5 −6
Original line number Diff line number Diff line
import { getLogger } from "@logtape/logtape";
import { SpanStatusCode, type TracerProvider } from "@opentelemetry/api";
import { SpanStatusCode, trace, type TracerProvider } from "@opentelemetry/api";
import { delay } from "@std/async/delay";
import metadata from "../deno.json" with { type: "json" };
import {
@@ -40,7 +40,8 @@ export interface LookupObjectOptions {
  userAgent?: GetUserAgentOptions | string;

  /**
   * The OpenTelemetry tracer provider.
   * The OpenTelemetry tracer provider.  If omitted, the global tracer provider
   * is used.
   * @since 1.3.0
   */
  tracerProvider?: TracerProvider;
@@ -85,10 +86,8 @@ export async function lookupObject(
  identifier: string | URL,
  options: LookupObjectOptions = {},
): Promise<Object | null> {
  if (options.tracerProvider == null) {
    return await lookupObjectInternal(identifier, options);
  }
  const tracer = options.tracerProvider.getTracer(
  const tracerProvider = options.tracerProvider ?? trace.getTracerProvider();
  const tracer = tracerProvider.getTracer(
    metadata.name,
    metadata.version,
  );
+5 −5
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ import { getLogger } from "@logtape/logtape";
import {
  SpanKind,
  SpanStatusCode,
  trace,
  type TracerProvider,
} from "@opentelemetry/api";
import metadata from "../deno.json" with { type: "json" };
@@ -27,7 +28,8 @@ export interface LookupWebFingerOptions {
  userAgent?: GetUserAgentOptions | string;

  /**
   * The OpenTelemetry tracer provider.
   * The OpenTelemetry tracer provider.  If omitted, the global tracer provider
   * is used.
   */
  tracerProvider?: TracerProvider;
}
@@ -43,10 +45,8 @@ export async function lookupWebFinger(
  resource: URL | string,
  options: LookupWebFingerOptions = {},
): Promise<ResourceDescriptor | null> {
  if (options.tracerProvider == null) {
    return await lookupWebFingerInternal(resource, options);
  }
  const tracer = options.tracerProvider.getTracer(
  const tracerProvider = options.tracerProvider ?? trace.getTracerProvider();
  const tracer = tracerProvider.getTracer(
    metadata.name,
    metadata.version,
  );