OpenTelemetry Integration for .NET Applications
與 OpenTelemetry 整合的主要方法是配置 OpenTelemetry 所監視之任何應用程式的預設 OTLP 匯出程式,以將其資料傳送至 Instana 代理程式。 這在 OpenTelemetry 頁面上說明。
可以使用其他元件進一步自訂 OpenTelemetry 整合。 此頁面說明 .NET 的可用 OpenTelemetry 元件。
無伺服器 OpenTelemetry Exporter
NuGet 套件 OpenTelemetry.Exporter.Instana 會將 OpenTelemetry 追蹤資料轉換成 Instana 格式,並將它傳送至 Instana 後端。
Instana .NET OpenTelemetry 匯出器主要設計用於無伺服器環境中,例如 AWS Fargate 或 Google Run。 Instana 已使用主機代理程式提供 OpenTelemetry for SaaS 及自行管理解決方案的支援。 不過,如果您的 .NET 應用程式在無伺服器環境中執行,且代理程式不存在,則 OpenTelemetry 匯出程式就是要執行的方式。
若要使用匯出器,請將套件安裝至專案,將它匯入至追蹤模組,並建立新的 InstanaExporter實例。
匯出器預期必須提供兩個 Instana 環境變數 給應用程式:
INSTANA_AGENT_KEYINSTANA_ENDPOINT_URL
例如,您可以將匯出器配置到追蹤模組中,如下所示:
using System.Diagnostics;
using OpenTelemetry;
using OpenTelemetry.Trace;
using OpenTelemetry.Resources;
using System;
using System.Threading;
using System.Data;
using System.Collections.Generic;
using OpenTelemetry.Exporter.Instana;
using System.Threading.Tasks
// Define some important constants and the activity source
var serviceName = "Instana.OpenTelemetryTestApp.TestService";
var serviceVersion = "1.0.0";
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource(serviceName)
.SetResourceBuilder(
ResourceBuilder.CreateDefault()
.AddService(serviceName: serviceName, serviceVersion: serviceVersion))
.AddSqlClientInstrumentation()
.AddConsoleExporter()
// Add the Instana Exporter.
// Make sure to provide the agent key and back end endpoint URL environment variables:
// * INSTANA_AGENT_KEY
// * INSTANA_ENDPOINT_URL
.AddInstanaExporter()
.Build();
...
這就足夠了 當 OpenTelemetry 監視的應用程式執行時, Instana 匯出程式會將 OpenTelemetry 跨距轉換為 Instana 跨距,並將它們傳送至後端端點。
OpenTelemetry 追蹤視覺化將呈現在 Instana 中,就像一般 Instana 追蹤跨距一樣。