opentelemetry-js/modules/_opentelemetry_sdk-node.html

147 lines
44 KiB
HTML

<!DOCTYPE html><html class="default" lang="en" data-base=".."><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@opentelemetry/sdk-node | OpenTelemetry SDK</title><meta name="description" content="Documentation for OpenTelemetry SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">OpenTelemetry SDK</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">OpenTelemetry SDK</a></li><li><a href="_opentelemetry_sdk-node.html">@opentelemetry/sdk-node</a></li></ul><h1>Module @opentelemetry/sdk-node</h1></div><section class="tsd-panel tsd-typography"><a id="opentelemetry-sdk-for-nodejs" class="tsd-anchor"></a><h1 class="tsd-anchor-link">OpenTelemetry SDK for Node.js<a href="#opentelemetry-sdk-for-nodejs" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p><a href="https://www.npmjs.com/package/@opentelemetry/sdk-node"><img src="https://badge.fury.io/js/%40opentelemetry%2Fsdk-node.svg" alt="NPM Published Version"></a>
<a href="https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat"><img src="https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat" alt="Apache License"></a></p>
<p><strong>Note: This is an experimental package under active development. New releases may include breaking changes.</strong></p>
<p>This package provides the full OpenTelemetry SDK for Node.js including tracing and metrics.</p>
<a id="quick-start" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Quick Start<a href="#quick-start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p><strong>Note: Much of OpenTelemetry JS documentation is written assuming the compiled application is run as CommonJS.</strong>
For more details on ECMAScript Modules vs CommonJS, refer to <a href="https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/esm-support.md">esm-support</a>.</p>
<p>To get started you need to install <code>@opentelemetry/sdk-node</code>, a metrics and/or tracing exporter, and any appropriate instrumentation for the node modules used by your application.</p>
<a id="installation" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Installation<a href="#installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="sh"><span class="hl-0">$</span><span class="hl-1"> </span><span class="hl-5"># Install the SDK</span><br/><span class="hl-0">$</span><span class="hl-1"> </span><span class="hl-2">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-2">@opentelemetry/sdk-node</span><br/><br/><span class="hl-0">$</span><span class="hl-1"> </span><span class="hl-5"># Install exporters and plugins</span><br/><span class="hl-0">$</span><span class="hl-1"> </span><span class="hl-2">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-10">\</span><br/><span class="hl-1"> </span><span class="hl-2">@opentelemetry/exporter-jaeger</span><span class="hl-1"> </span><span class="hl-10">\ </span><span class="hl-2">#</span><span class="hl-1"> </span><span class="hl-2">add</span><span class="hl-1"> </span><span class="hl-2">tracing</span><span class="hl-1"> </span><span class="hl-2">exporters</span><span class="hl-1"> </span><span class="hl-2">as</span><span class="hl-1"> </span><span class="hl-2">needed</span><br/><span class="hl-1"> </span><span class="hl-0">@opentelemetry/exporter-prometheus</span><span class="hl-1"> </span><span class="hl-10">\ </span><span class="hl-2">#</span><span class="hl-1"> </span><span class="hl-2">add</span><span class="hl-1"> </span><span class="hl-2">metrics</span><span class="hl-1"> </span><span class="hl-2">exporters</span><span class="hl-1"> </span><span class="hl-2">as</span><span class="hl-1"> </span><span class="hl-2">needed</span><br/><span class="hl-1"> </span><span class="hl-0">@opentelemetry/instrumentation-http</span><span class="hl-1"> </span><span class="hl-5"># add instrumentations as needed</span><br/><br/><span class="hl-0">$</span><span class="hl-1"> </span><span class="hl-5"># or install all officially supported core and contrib plugins</span><br/><span class="hl-0">$</span><span class="hl-1"> </span><span class="hl-2">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-2">@opentelemetry/auto-instrumentations-node</span><br/>
</code><button type="button">Copy</button></pre>
<blockquote>
<p>Note: this example is for Node.js. See <a href="https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/opentelemetry-web">examples/opentelemetry-web</a> for a browser example.</p>
</blockquote>
<a id="initialize-the-sdk" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Initialize the SDK<a href="#initialize-the-sdk" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Before any other module in your application is loaded, you must initialize the SDK.
If you fail to initialize the SDK or initialize it too late, no-op implementations will be provided to any library which acquires a tracer or meter from the API.</p>
<p>This example uses Jaeger and Prometheus, but exporters exist for <a href="https://github.com/open-telemetry/opentelemetry-js#trace-exporters">other tracing backends</a>.
As shown in the installation instructions, exporters passed to the SDK must be installed alongside <code>@opentelemetry/sdk-node</code>.</p>
<pre><code class="javascript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">opentelemetry</span><span class="hl-1"> = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">&quot;@opentelemetry/sdk-node&quot;</span><span class="hl-1">);</span><br/><span class="hl-3">const</span><span class="hl-1"> { </span><span class="hl-4">JaegerExporter</span><span class="hl-1"> } = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">&quot;@opentelemetry/exporter-jaeger&quot;</span><span class="hl-1">);</span><br/><span class="hl-3">const</span><span class="hl-1"> { </span><span class="hl-4">PrometheusExporter</span><span class="hl-1"> } = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">&quot;@opentelemetry/exporter-prometheus&quot;</span><span class="hl-1">);</span><br/><span class="hl-3">const</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">getNodeAutoInstrumentations</span><span class="hl-1">,</span><br/><span class="hl-1">} = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">&quot;@opentelemetry/auto-instrumentations-node&quot;</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">jaegerExporter</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">JaegerExporter</span><span class="hl-1">();</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">prometheusExporter</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">PrometheusExporter</span><span class="hl-1">();</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">sdk</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-6">opentelemetry</span><span class="hl-1">.</span><span class="hl-0">NodeSDK</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-5">// Optional - if omitted, the tracing SDK will be initialized from environment variables</span><br/><span class="hl-1"> </span><span class="hl-6">traceExporter:</span><span class="hl-1"> </span><span class="hl-6">jaegerExporter</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">// Optional - If omitted, the metrics SDK will not be initialized</span><br/><span class="hl-1"> </span><span class="hl-6">metricReader:</span><span class="hl-1"> </span><span class="hl-6">prometheusExporter</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">// Optional - you can use the metapackage or load each instrumentation individually</span><br/><span class="hl-1"> </span><span class="hl-6">instrumentations:</span><span class="hl-1"> [</span><span class="hl-0">getNodeAutoInstrumentations</span><span class="hl-1">()],</span><br/><span class="hl-1"> </span><span class="hl-5">// See the Configuration section below for additional configuration options</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-6">sdk</span><span class="hl-1">.</span><span class="hl-0">start</span><span class="hl-1">();</span><br/><br/><span class="hl-5">// You can also use the shutdown method to gracefully shut down the SDK before process shutdown</span><br/><span class="hl-5">// or on some operating system signal.</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">process</span><span class="hl-1"> = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">&quot;process&quot;</span><span class="hl-1">);</span><br/><span class="hl-6">process</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><span class="hl-2">&quot;SIGTERM&quot;</span><span class="hl-1">, () </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">sdk</span><br/><span class="hl-1"> .</span><span class="hl-0">shutdown</span><span class="hl-1">()</span><br/><span class="hl-1"> .</span><span class="hl-0">then</span><span class="hl-1">(</span><br/><span class="hl-1"> () </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">&quot;SDK shut down successfully&quot;</span><span class="hl-1">),</span><br/><span class="hl-1"> (</span><span class="hl-6">err</span><span class="hl-1">) </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">&quot;Error shutting down SDK&quot;</span><span class="hl-1">, </span><span class="hl-6">err</span><span class="hl-1">)</span><br/><span class="hl-1"> )</span><br/><span class="hl-1"> .</span><span class="hl-0">finally</span><span class="hl-1">(() </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">process</span><span class="hl-1">.</span><span class="hl-0">exit</span><span class="hl-1">(</span><span class="hl-9">0</span><span class="hl-1">));</span><br/><span class="hl-1">});</span>
</code><button type="button">Copy</button></pre>
<a id="configuration" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Configuration<a href="#configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Below is a full list of configuration options which may be passed into the <code>NodeSDK</code> constructor;</p>
<a id="autodetectresources" class="tsd-anchor"></a><h3 class="tsd-anchor-link">autoDetectResources<a href="#autodetectresources" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Detect resources automatically from the environment using the default resource detectors. Default <code>true</code>.</p>
<a id="contextmanager" class="tsd-anchor"></a><h3 class="tsd-anchor-link">contextManager<a href="#contextmanager" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Use a custom context manager. Default: <a href="../media/README.md">AsyncLocalStorageContextManager</a></p>
<a id="textmappropagator" class="tsd-anchor"></a><h3 class="tsd-anchor-link">textMapPropagator<a href="#textmappropagator" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Use a custom propagator. Default: <a href="../media/composite.ts">CompositePropagator</a> using <a href="../media/README-1.md#w3ctracecontextpropagator-propagator">W3C Trace Context</a> and <a href="../media/README-1.md#baggage-propagator">Baggage</a></p>
<a id="logrecordprocessor" class="tsd-anchor"></a><h3 class="tsd-anchor-link">logRecordProcessor<a href="#logrecordprocessor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Deprecated, please use <a href="#logrecordprocessors">logRecordProcessors</a> instead.</p>
<a id="logrecordprocessors" class="tsd-anchor"></a><h3 class="tsd-anchor-link">logRecordProcessors<a href="#logrecordprocessors" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>An array of log record processors to register to the logger provider.</p>
<a id="mergeresourcewithdefaults" class="tsd-anchor"></a><h3 class="tsd-anchor-link">mergeResourceWithDefaults<a href="#mergeresourcewithdefaults" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Merge user-provided resources with the default resource. Default <code>true</code>.
The default will change to <code>false</code> in a future iteration of this package.</p>
<a id="metricreader" class="tsd-anchor"></a><h3 class="tsd-anchor-link">metricReader<a href="#metricreader" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Add a <a href="../media/MetricReader.ts">MetricReader</a>
that will be passed to the <code>MeterProvider</code>. If <code>metricReader</code> is not configured,
the metrics SDK will not be initialized and registered.</p>
<a id="views" class="tsd-anchor"></a><h3 class="tsd-anchor-link">views<a href="#views" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>A list of views to be passed to the <code>MeterProvider</code>.
Accepts an array of <a href="../media/View.ts">View</a>-instances.
This parameter can be used to configure explicit bucket sizes of histogram metrics.</p>
<a id="instrumentations" class="tsd-anchor"></a><h3 class="tsd-anchor-link">instrumentations<a href="#instrumentations" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Configure instrumentations. By default none of the instrumentation is enabled,
if you want to enable them you can use either <a href="https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/auto-instrumentations-node">metapackage</a>
or configure each instrumentation individually.</p>
<a id="resource" class="tsd-anchor"></a><h3 class="tsd-anchor-link">resource<a href="#resource" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Configure a resource. Resources may also be detected by using the <code>autoDetectResources</code> method of the SDK.</p>
<a id="resourcedetectors" class="tsd-anchor"></a><h3 class="tsd-anchor-link">resourceDetectors<a href="#resourcedetectors" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Configure resource detectors. By default, the resource detectors are [envDetector, processDetector, hostDetector].
NOTE: In order to enable the detection, the parameter <code>autoDetectResources</code> has to be <code>true</code>.</p>
<p>If <code>resourceDetectors</code> was not set, you can also use the environment variable <code>OTEL_NODE_RESOURCE_DETECTORS</code> to enable only certain detectors, or completely disable them:</p>
<ul>
<li><code>env</code></li>
<li><code>host</code></li>
<li><code>os</code></li>
<li><code>process</code></li>
<li><code>serviceinstance</code> (experimental)</li>
<li><code>all</code> - enable all resource detectors above
<ul>
<li><strong>NOTE:</strong> future versions of <code>@opentelemetry/sdk-node</code> may include additional detectors that will be covered by this scope.</li>
</ul>
</li>
<li><code>none</code> - disable resource detection</li>
</ul>
<p>For example, to enable only the <code>env</code>, <code>host</code> detectors:</p>
<pre><code class="shell"><span class="hl-3">export</span><span class="hl-1"> </span><span class="hl-6">OTEL_NODE_RESOURCE_DETECTORS</span><span class="hl-1">=</span><span class="hl-2">&quot;env,host&quot;</span>
</code><button type="button">Copy</button></pre>
<a id="sampler" class="tsd-anchor"></a><h3 class="tsd-anchor-link">sampler<a href="#sampler" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Configure a custom sampler. By default, all traces will be sampled.</p>
<a id="spanprocessor" class="tsd-anchor"></a><h3 class="tsd-anchor-link">spanProcessor<a href="#spanprocessor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Deprecated, please use <a href="#spanprocessors">spanProcessors</a> instead.</p>
<a id="spanprocessors" class="tsd-anchor"></a><h3 class="tsd-anchor-link">spanProcessors<a href="#spanprocessors" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>An array of span processors to register to the tracer provider.</p>
<a id="traceexporter" class="tsd-anchor"></a><h3 class="tsd-anchor-link">traceExporter<a href="#traceexporter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Configure a trace exporter. If an exporter is configured, it will be used with a <a href="../media/BatchSpanProcessor.ts">BatchSpanProcessor</a>. If an exporter OR span processor is not configured programmatically, this package will auto setup the default <code>otlp</code> exporter with <code>http/protobuf</code> protocol with a <code>BatchSpanProcessor</code>.</p>
<a id="spanlimits" class="tsd-anchor"></a><h3 class="tsd-anchor-link">spanLimits<a href="#spanlimits" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Configure tracing parameters. These are the same trace parameters used to <a href="../media/types.ts#L71">configure a tracer</a>.</p>
<a id="servicename" class="tsd-anchor"></a><h3 class="tsd-anchor-link">serviceName<a href="#servicename" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Configure the <a href="https://github.com/open-telemetry/semantic-conventions/blob/main/docs/registry/attributes/service.md#service-name">service name</a>.</p>
<a id="disable-the-sdk-from-the-environment" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Disable the SDK from the environment<a href="#disable-the-sdk-from-the-environment" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Disable the SDK by setting the <code>OTEL_SDK_DISABLED</code> environment variable to <code>true</code>.</p>
<a id="configure-log-level-from-the-environment" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Configure log level from the environment<a href="#configure-log-level-from-the-environment" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Set the log level by setting the <code>OTEL_LOG_LEVEL</code> environment variable to enums:</p>
<ul>
<li><code>NONE</code>,</li>
<li><code>ERROR</code>,</li>
<li><code>WARN</code>,</li>
<li><code>INFO</code>,</li>
<li><code>DEBUG</code>,</li>
<li><code>VERBOSE</code>,</li>
<li><code>ALL</code>.</li>
</ul>
<p>The default level is <code>INFO</code>.</p>
<a id="configure-exporters-from-environment" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Configure Exporters from environment<a href="#configure-exporters-from-environment" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>This is an alternative to programmatically configuring an exporter or span processor. For traces this package will auto setup the default <code>otlp</code> exporter with <code>http/protobuf</code> protocol if <code>traceExporter</code> or <code>spanProcessor</code> hasn't been passed into the <code>NodeSDK</code> constructor.</p>
<a id="exporters" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Exporters<a href="#exporters" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><table>
<thead>
<tr>
<th>Environment variable</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>OTEL_TRACES_EXPORTER</td>
<td>List of exporters to be used for tracing, separated by commas. Options include <code>otlp</code>, <code>jaeger</code>, <code>zipkin</code>, and <code>none</code>. Default is <code>otlp</code>. <code>none</code> means no autoconfigured exporter.</td>
</tr>
<tr>
<td>OTEL_LOGS_EXPORTER</td>
<td>List of exporters to be used for logging, separated by commas. Options include <code>otlp</code>, <code>console</code> and <code>none</code>. Default is <code>otlp</code>. <code>none</code> means no autoconfigured exporter.</td>
</tr>
</tbody>
</table>
<a id="otlp-exporter" class="tsd-anchor"></a><h3 class="tsd-anchor-link">OTLP Exporter<a href="#otlp-exporter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><table>
<thead>
<tr>
<th>Environment variable</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>OTEL_EXPORTER_OTLP_PROTOCOL</td>
<td>The transport protocol to use on OTLP trace, metric, and log requests. Options include <code>grpc</code>, <code>http/protobuf</code>, and <code>http/json</code>. Default is <code>http/protobuf</code>.</td>
</tr>
<tr>
<td>OTEL_EXPORTER_OTLP_TRACES_PROTOCOL</td>
<td>The transport protocol to use on OTLP trace requests. Options include <code>grpc</code>, <code>http/protobuf</code>, and <code>http/json</code>. Default is <code>http/protobuf</code>.</td>
</tr>
<tr>
<td>OTEL_EXPORTER_OTLP_METRICS_PROTOCOL</td>
<td>The transport protocol to use on OTLP metric requests. Options include <code>grpc</code>, <code>http/protobuf</code>, and <code>http/json</code>. Default is <code>http/protobuf</code>.</td>
</tr>
<tr>
<td>OTEL_EXPORTER_OTLP_LOGS_PROTOCOL</td>
<td>The transport protocol to use on OTLP log requests. Options include <code>grpc</code>, <code>http/protobuf</code>, and <code>http/json</code>. Default is <code>http/protobuf</code>.</td>
</tr>
<tr>
<td>OTEL_METRICS_EXPORTER</td>
<td>Metrics exporter to be used. options are <code>otlp</code>, <code>prometheus</code>, <code>console</code> or <code>none</code>.</td>
</tr>
<tr>
<td>OTEL_METRIC_EXPORT_INTERVAL</td>
<td>The export interval when using a push Metric Reader. Default is <code>60000</code>.</td>
</tr>
<tr>
<td>OTEL_METRIC_EXPORT_TIMEOUT</td>
<td>The export timeout when using a push Metric Reader. Default is <code>30000</code>.</td>
</tr>
</tbody>
</table>
<p>Additionally, you can specify other applicable environment variables that apply to each exporter such as the following:</p>
<ul>
<li><a href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options">OTLP exporter environment configuration</a></li>
<li><a href="https://github.com/open-telemetry/opentelemetry-specification/blob/6ce62202e5407518e19c56c445c13682ef51a51d/specification/sdk-environment-variables.md#zipkin-exporter">Zipkin exporter environment configuration</a></li>
<li><a href="https://github.com/open-telemetry/opentelemetry-specification/blob/6ce62202e5407518e19c56c445c13682ef51a51d/specification/sdk-environment-variables.md#jaeger-exporter">Jaeger exporter environment configuration</a></li>
</ul>
<a id="useful-links" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Useful links<a href="#useful-links" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
<li>For more information on OpenTelemetry, visit: <a href="https://opentelemetry.io/">https://opentelemetry.io/</a></li>
<li>For more about OpenTelemetry JavaScript: <a href="https://github.com/open-telemetry/opentelemetry-js">https://github.com/open-telemetry/opentelemetry-js</a></li>
<li>For help or feedback on this project, join us in <a href="https://github.com/open-telemetry/opentelemetry-js/discussions">GitHub Discussions</a></li>
</ul>
<a id="license" class="tsd-anchor"></a><h2 class="tsd-anchor-link">License<a href="#license" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Apache 2.0 - See <a href="https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE">LICENSE</a> for more information.</p>
</section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Namespaces"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Namespaces</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary"><a id="opentelemetryapi" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><a href="_opentelemetry_sdk-node._opentelemetry_api.html">@opentelemetry/api</a><a href="#opentelemetryapi" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary"><a id="core" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><a href="_opentelemetry_sdk-node.core.html">core</a><a href="#core" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary"><a id="logs" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><a href="_opentelemetry_sdk-node.logs.html">logs</a><a href="#logs" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary"><a id="metrics" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><a href="_opentelemetry_sdk-node.metrics.html">metrics</a><a href="#metrics" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary"><a id="node" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><a href="_opentelemetry_sdk-node.node.html">node</a><a href="#node" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary"><a id="resources" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><a href="_opentelemetry_sdk-node.resources.html">resources</a><a href="#resources" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary"><a id="tracing" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><a href="_opentelemetry_sdk-node.tracing.html">tracing</a><a href="#tracing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Classes</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary"><a id="nodesdk" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_opentelemetry_sdk-node.NodeSDK.html">NodeSDK</a><a href="#nodesdk" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Interfaces"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Interfaces</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary"><a id="nodesdkconfiguration" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_opentelemetry_sdk-node.NodeSDKConfiguration.html">NodeSDKConfiguration</a><a href="#nodesdkconfiguration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Type Aliases</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary"><a id="loggerproviderconfig" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/_opentelemetry_sdk-node.LoggerProviderConfig.html">LoggerProviderConfig</a><a href="#loggerproviderconfig" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary"><a id="meterproviderconfig" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/_opentelemetry_sdk-node.MeterProviderConfig.html">MeterProviderConfig</a><a href="#meterproviderconfig" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-References"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> References</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary"><a id="contextbase-1" class="tsd-anchor"></a><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><span>contextBase</span><span> → </span><a href="_opentelemetry_sdk-node._opentelemetry_api.html">@opentelemetry/api</a><a href="#contextbase-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#opentelemetry-sdk-for-nodejs"><span>Open<wbr/>Telemetry SDK for <wbr/>Node.js</span></a><ul><li><a href="#quick-start"><span>Quick <wbr/>Start</span></a></li><li><ul><li><a href="#installation"><span>Installation</span></a></li><li><a href="#initialize-the-sdk"><span>Initialize the SDK</span></a></li></ul></li><li><a href="#configuration"><span>Configuration</span></a></li><li><ul><li><a href="#autodetectresources"><span>auto<wbr/>Detect<wbr/>Resources</span></a></li><li><a href="#contextmanager"><span>context<wbr/>Manager</span></a></li><li><a href="#textmappropagator"><span>text<wbr/>Map<wbr/>Propagator</span></a></li><li><a href="#logrecordprocessor"><span>log<wbr/>Record<wbr/>Processor</span></a></li><li><a href="#logrecordprocessors"><span>log<wbr/>Record<wbr/>Processors</span></a></li><li><a href="#mergeresourcewithdefaults"><span>merge<wbr/>Resource<wbr/>With<wbr/>Defaults</span></a></li><li><a href="#metricreader"><span>metric<wbr/>Reader</span></a></li><li><a href="#views"><span>views</span></a></li><li><a href="#instrumentations"><span>instrumentations</span></a></li><li><a href="#resource"><span>resource</span></a></li><li><a href="#resourcedetectors"><span>resource<wbr/>Detectors</span></a></li><li><a href="#sampler"><span>sampler</span></a></li><li><a href="#spanprocessor"><span>span<wbr/>Processor</span></a></li><li><a href="#spanprocessors"><span>span<wbr/>Processors</span></a></li><li><a href="#traceexporter"><span>trace<wbr/>Exporter</span></a></li><li><a href="#spanlimits"><span>span<wbr/>Limits</span></a></li><li><a href="#servicename"><span>service<wbr/>Name</span></a></li></ul></li><li><a href="#disable-the-sdk-from-the-environment"><span>Disable the SDK from the environment</span></a></li><li><a href="#configure-log-level-from-the-environment"><span>Configure log level from the environment</span></a></li><li><a href="#configure-exporters-from-environment"><span>Configure <wbr/>Exporters from environment</span></a></li><li><ul><li><a href="#exporters"><span>Exporters</span></a></li><li><a href="#otlp-exporter"><span>OTLP <wbr/>Exporter</span></a></li></ul></li><li><a href="#useful-links"><span>Useful links</span></a></li><li><a href="#license"><span>License</span></a></li></ul><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Namespaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Namespaces</summary><div><a href="#opentelemetryapi" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><span>@opentelemetry/api</span></a><a href="#core" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><span>core</span></a><a href="#logs" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><span>logs</span></a><a href="#metrics" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><span>metrics</span></a><a href="#node" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><span>node</span></a><a href="#resources" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><span>resources</span></a><a href="#tracing" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><span>tracing</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Classes</summary><div><a href="#nodesdk" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>NodeSDK</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Interfaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Interfaces</summary><div><a href="#nodesdkconfiguration" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>NodeSDKConfiguration</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Type Aliases</summary><div><a href="#loggerproviderconfig" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Logger<wbr/>Provider<wbr/>Config</span></a><a href="#meterproviderconfig" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Meter<wbr/>Provider<wbr/>Config</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-References"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>References</summary><div><a href="#contextbase-1" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Namespace"><use href="../assets/icons.svg#icon-4"></use></svg><span>context<wbr/>Base</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">OpenTelemetry SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>