A kapcsolati sztring konfigurálásához használja az alábbi három módszer egyikét:
Hozzáadás UseAzureMonitor() a program.cs fájlhoz:
var builder = WebApplication.CreateBuilder(args);
// Add the OpenTelemetry telemetry service to the application.
// This service will collect and send telemetry data to Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor(options => {
options.ConnectionString = "<Your Connection String>";
});
var app = builder.Build();
app.Run();
Ha a kapcsolati sztring egynél több helyen állítja be, a következő sorrendet tartjuk be:
Kód
Környezeti változó
Konfigurációs fájl
A kapcsolati sztring az alábbi két módon konfigurálható:
Adja hozzá az Azure Monitor-exportőrt minden OpenTelemetria-jelhez az alkalmazás indításakor.
// Create a new OpenTelemetry tracer provider.
// It is important to keep the TracerProvider instance active throughout the process lifetime.
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter(options =>
{
options.ConnectionString = "<Your Connection String>";
});
// Create a new OpenTelemetry meter provider.
// It is important to keep the MetricsProvider instance active throughout the process lifetime.
var metricsProvider = Sdk.CreateMeterProviderBuilder()
.AddAzureMonitorMetricExporter(options =>
{
options.ConnectionString = "<Your Connection String>";
});
// Create a new logger factory.
// It is important to keep the LoggerFactory instance active throughout the process lifetime.
var loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(logging =>
{
logging.AddAzureMonitorLogExporter(options =>
{
options.ConnectionString = "<Your Connection String>";
});
});
});
// Import the useAzureMonitor function and the AzureMonitorOpenTelemetryOptions class from the @azure/monitor-opentelemetry package.
const { useAzureMonitor, AzureMonitorOpenTelemetryOptions } = require("@azure/monitor-opentelemetry");
// Create a new AzureMonitorOpenTelemetryOptions object.
const options: AzureMonitorOpenTelemetryOptions = {
azureMonitorExporterOptions: {
connectionString: "<your connection string>"
}
};
// Enable Azure Monitor integration using the useAzureMonitor function and the AzureMonitorOpenTelemetryOptions object.
useAzureMonitor(options);
A kapcsolati sztring az alábbi két módon konfigurálható:
# Import the `configure_azure_monitor()` function from the `azure.monitor.opentelemetry` package.
from azure.monitor.opentelemetry import configure_azure_monitor
# Configure OpenTelemetry to use Azure Monitor with the specified connection string.
# Replace `<your-connection-string>` with the connection string of your Azure Monitor Application Insights resource.
configure_azure_monitor(
connection_string="<your-connection-string>",
)
A felhőbeli szerepkör nevének és a felhőbeli szerepkörpéldánynak a beállítása
Támogatott nyelvek esetén az Azure Monitor OpenTelemetry Disztribúció automatikusan észleli az erőforrás-környezetet, és alapértelmezett értékeket biztosít az összetevő felhőszerepkör-neve és felhőbeli szerepkörpéldány-tulajdonságai számára. Előfordulhat azonban, hogy felül szeretné bírálni az alapértelmezett értékeket a csapat számára értelmes értékekkel. A felhőbeli szerepkörnév értéke az alkalmazástérképen a csomópont alatti névként jelenik meg.
Állítsa be a felhőbeli szerepkör nevét és a felhőbeli szerepkörpéldányt erőforrásattribútumokon keresztül. A felhőbeli szerepkör neve használ service.namespace és service.name attribútumokat, bár visszaesik service.name , ha service.namespace nincs beállítva. A felhőbeli szerepkör-példány az attribútumértéket service.instance.id használja. Az erőforrások szabványos attribútumairól az OpenTelemetry Szemantikai Konvenciók című témakörben olvashat bővebben.
// Setting role name and role instance
// Create a dictionary of resource attributes.
var resourceAttributes = new Dictionary<string, object> {
{ "service.name", "my-service" },
{ "service.namespace", "my-namespace" },
{ "service.instance.id", "my-instance" }};
// Create a new ASP.NET Core web application builder.
var builder = WebApplication.CreateBuilder(args);
// Add the OpenTelemetry telemetry service to the application.
// This service will collect and send telemetry data to Azure Monitor.
builder.Services.AddOpenTelemetry()
.UseAzureMonitor()
// Configure the ResourceBuilder to add the custom resource attributes to all signals.
// Custom resource attributes should be added AFTER AzureMonitor to override the default ResourceDetectors.
.ConfigureResource(resourceBuilder => resourceBuilder.AddAttributes(_testResourceAttributes));
// Build the ASP.NET Core web application.
var app = builder.Build();
// Start the ASP.NET Core web application.
app.Run();
Állítsa be a felhőbeli szerepkör nevét és a felhőbeli szerepkörpéldányt erőforrásattribútumokon keresztül. A felhőbeli szerepkör neve használ service.namespace és service.name attribútumokat, bár visszaesik service.name , ha service.namespace nincs beállítva. A felhőbeli szerepkör-példány az attribútumértéket service.instance.id használja. Az erőforrások szabványos attribútumairól az OpenTelemetry Szemantikai Konvenciók című témakörben olvashat bővebben.
// Setting role name and role instance
// Create a dictionary of resource attributes.
var resourceAttributes = new Dictionary<string, object> {
{ "service.name", "my-service" },
{ "service.namespace", "my-namespace" },
{ "service.instance.id", "my-instance" }};
// Create a resource builder.
var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes);
// Create a new OpenTelemetry tracer provider and set the resource builder.
// It is important to keep the TracerProvider instance active throughout the process lifetime.
var tracerProvider = Sdk.CreateTracerProviderBuilder()
// Set ResourceBuilder on the TracerProvider.
.SetResourceBuilder(resourceBuilder)
.AddAzureMonitorTraceExporter();
// Create a new OpenTelemetry meter provider and set the resource builder.
// It is important to keep the MetricsProvider instance active throughout the process lifetime.
var metricsProvider = Sdk.CreateMeterProviderBuilder()
// Set ResourceBuilder on the MeterProvider.
.SetResourceBuilder(resourceBuilder)
.AddAzureMonitorMetricExporter();
// Create a new logger factory and add the OpenTelemetry logger provider with the resource builder.
// It is important to keep the LoggerFactory instance active throughout the process lifetime.
var loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(logging =>
{
// Set ResourceBuilder on the Logging config.
logging.SetResourceBuilder(resourceBuilder);
logging.AddAzureMonitorLogExporter();
});
});
spring.application.name A Spring Boot natív rendszerkép-alkalmazásainak használata
quarkus.application.name A Quarkus natív képalkalmazásainak használata
Állítsa be a felhőbeli szerepkör nevét és a felhőbeli szerepkörpéldányt erőforrásattribútumokon keresztül. A felhőbeli szerepkör neve használ service.namespace és service.name attribútumokat, bár visszaesik service.name , ha service.namespace nincs beállítva. A felhőbeli szerepkör-példány az attribútumértéket service.instance.id használja. Az erőforrások szabványos attribútumairól az OpenTelemetry Szemantikai Konvenciók című témakörben olvashat bővebben.
// Import the useAzureMonitor function, the AzureMonitorOpenTelemetryOptions class, the Resource class, and the SemanticResourceAttributes class from the @azure/monitor-opentelemetry, @opentelemetry/resources, and @opentelemetry/semantic-conventions packages, respectively.
const { useAzureMonitor, AzureMonitorOpenTelemetryOptions } = require("@azure/monitor-opentelemetry");
const { Resource } = require("@opentelemetry/resources");
const { SemanticResourceAttributes } = require("@opentelemetry/semantic-conventions");
// Create a new Resource object with the following custom resource attributes:
//
// * service_name: my-service
// * service_namespace: my-namespace
// * service_instance_id: my-instance
const customResource = new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: "my-service",
[SemanticResourceAttributes.SERVICE_NAMESPACE]: "my-namespace",
[SemanticResourceAttributes.SERVICE_INSTANCE_ID]: "my-instance",
});
// Create a new AzureMonitorOpenTelemetryOptions object and set the resource property to the customResource object.
const options: AzureMonitorOpenTelemetryOptions = {
resource: customResource
};
// Enable Azure Monitor integration using the useAzureMonitor function and the AzureMonitorOpenTelemetryOptions object.
useAzureMonitor(options);
Állítsa be a felhőbeli szerepkör nevét és a felhőbeli szerepkörpéldányt erőforrásattribútumokon keresztül. A felhőbeli szerepkör neve használ service.namespace és service.name attribútumokat, bár visszaesik service.name , ha service.namespace nincs beállítva. A felhőbeli szerepkör-példány az attribútumértéket service.instance.id használja. Az erőforrások szabványos attribútumairól az OpenTelemetry Szemantikai Konvenciók című témakörben olvashat bővebben.
Állítsa be az erőforrásattribútumokat a és/vagy OTEL_SERVICE_NAME a OTEL_RESOURCE_ATTRIBUTES környezeti változók használatával. OTEL_RESOURCE_ATTRIBUTES vesszővel elválasztott kulcs-érték párok sorozatát veszi fel. Ha például a felhőszerepkör nevét a felhőbeli szerepkörpéldányra my-namespace.my-helloworld-servicemy-instanceszeretné állítani, beállíthatja OTEL_RESOURCE_ATTRIBUTES a OTEL_SERVICE_NAME következőt:
Ha nem állítja be az service.namespace Erőforrás attribútumot, a felhőalapú szerepkör nevét is beállíthatja csak a OTEL_SERVICE_NAME környezeti változóval vagy az service.name Erőforrás attribútummal. Ha például a felhőszerepkör nevét a felhőbeli szerepkörpéldányra my-helloworld-servicemy-instanceszeretné állítani, beállíthatja OTEL_RESOURCE_ATTRIBUTES a OTEL_SERVICE_NAME következőt:
Érdemes lehet engedélyezni a mintavételezést az adatbetöltés mennyiségének csökkentése érdekében, ami csökkenti a költségeket. Az Azure Monitor egy egyéni rögzített sebességű mintavevőt biztosít, amely mintavételezési aránysal tölti fel az eseményeket, amelyet az Application Insights átalakít ItemCount. A rögzített díjas mintavevő pontos élményeket és eseményszámokat biztosít. A mintavevőt úgy tervezték, hogy megőrizze a nyomkövetéseket a szolgáltatások között, és együttműködik a régebbi Application Insights szoftverfejlesztői készletekkel (SDK-kkal). További információ: További információ a mintavételezésről.
Feljegyzés
A metrikákat és naplókat a mintavételezés nem érinti.
A mintavevő 0 és 1 közötti mintaarányt vár. A 0,1 arány azt jelenti, hogy a nyomok körülbelül 10%-át küldi el a rendszer.
// Create a new ASP.NET Core web application builder.
var builder = WebApplication.CreateBuilder(args);
// Add the OpenTelemetry telemetry service to the application.
// This service will collect and send telemetry data to Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor(options =>
{
// Set the sampling ratio to 10%. This means that 10% of all traces will be sampled and sent to Azure Monitor.
options.SamplingRatio = 0.1F;
});
// Build the ASP.NET Core web application.
var app = builder.Build();
// Start the ASP.NET Core web application.
app.Run();
A mintavevő 0 és 1 közötti mintaarányt vár. A 0,1 arány azt jelenti, hogy a nyomok körülbelül 10%-át küldi el a rendszer.
// Create a new OpenTelemetry tracer provider.
// It is important to keep the TracerProvider instance active throughout the process lifetime.
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter(options =>
{
// Set the sampling ratio to 10%. This means that 10% of all traces will be sampled and sent to Azure Monitor.
options.SamplingRatio = 0.1F;
});
A 3.4.0-tól kezdődően a sebességkorlátos mintavételezés jelenleg az alapértelmezett. További információ a mintavételezésről: Java-mintavételezés.
A mintavevő 0 és 1 közötti mintaarányt vár. A 0,1 arány azt jelenti, hogy a nyomok körülbelül 10%-át küldi el a rendszer.
// Import the useAzureMonitor function and the AzureMonitorOpenTelemetryOptions class from the @azure/monitor-opentelemetry package.
const { useAzureMonitor, AzureMonitorOpenTelemetryOptions } = require("@azure/monitor-opentelemetry");
// Create a new AzureMonitorOpenTelemetryOptions object and set the samplingRatio property to 0.1.
const options: AzureMonitorOpenTelemetryOptions = {
samplingRatio: 0.1
};
// Enable Azure Monitor integration using the useAzureMonitor function and the AzureMonitorOpenTelemetryOptions object.
useAzureMonitor(options);
A configure_azure_monitor() függvény automatikusan az ApplicationInsightsSamplert használja az Application Insights SDK-kkal való kompatibilitáshoz és a telemetriai adatok mintavételéhez. A OTEL_TRACES_SAMPLER_ARG környezeti változóval megadhatja a mintavételezési gyakoriságot, amelynek érvényes tartománya 0 és 1 között van, ahol 0% és 1 100%.
A 0,1 érték például azt jelenti, hogy a rendszer a nyomkövetések 10%-át küldi el.
export OTEL_TRACES_SAMPLER_ARG=0.1
Tipp.
Ha rögzített/százalékos mintavételezést használ, és nem tudja biztosan, hogy mi legyen a mintavételezési sebesség beállítása, kezdje 5%-kal (azaz 0,05 mintavételezési arány) és állítsa be a sebességet a hibák és a teljesítménypaneleken látható műveletek pontossága alapján. A magasabb sebesség általában nagyobb pontosságot eredményez. A mintavételezés azonban befolyásolja a pontosságot, ezért azt javasoljuk, hogy riasztást küldjön az OpenTelemetry-metrikákra, amelyeket a mintavételezés nem érint.
Élő metrikák
Az élő metrikák valós idejű elemzési irányítópultot biztosítanak az alkalmazástevékenység és a teljesítmény elemzéséhez.
A Microsoft Entra ID (korábbi nevén Azure AD) hitelesítésének engedélyezése
Érdemes lehet engedélyezni a Microsoft Entra-hitelesítést az Azure-hoz való biztonságosabb kapcsolat érdekében, amely megakadályozza a jogosulatlan telemetriai adatok betöltését az előfizetésbe.
// Create a new ASP.NET Core web application builder.
var builder = WebApplication.CreateBuilder(args);
// Add the OpenTelemetry telemetry service to the application.
// This service will collect and send telemetry data to Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor(options => {
// Set the Azure Monitor credential to the DefaultAzureCredential.
// This credential will use the Azure identity of the current user or
// the service principal that the application is running as to authenticate
// to Azure Monitor.
options.Credential = new DefaultAzureCredential();
});
// Build the ASP.NET Core web application.
var app = builder.Build();
// Start the ASP.NET Core web application.
app.Run();
Támogatjuk az Azure Identity által biztosított hitelesítő osztályokat.
Helyi fejlesztéshez ajánljuk DefaultAzureCredential .
Rendszer által hozzárendelt és felhasználó által hozzárendelt felügyelt identitásokhoz javasoljuk ManagedIdentityCredential .
A rendszer által hozzárendelt alapértelmezett konstruktort használja paraméterek nélkül.
Felhasználó által hozzárendelt esetben adja meg az ügyfél-azonosítót a konstruktornak.
A szolgáltatásnevek használatát javasoljuk ClientSecretCredential .
Adja meg a bérlőazonosítót, az ügyfélazonosítót és az ügyfél titkos kódját a konstruktornak.
// Create a DefaultAzureCredential.
var credential = new DefaultAzureCredential();
// Create a new OpenTelemetry tracer provider and set the credential.
// It is important to keep the TracerProvider instance active throughout the process lifetime.
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter(options =>
{
options.Credential = credential;
});
// Create a new OpenTelemetry meter provider and set the credential.
// It is important to keep the MetricsProvider instance active throughout the process lifetime.
var metricsProvider = Sdk.CreateMeterProviderBuilder()
.AddAzureMonitorMetricExporter(options =>
{
options.Credential = credential;
});
// Create a new logger factory and add the OpenTelemetry logger provider with the credential.
// It is important to keep the LoggerFactory instance active throughout the process lifetime.
var loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(logging =>
{
logging.AddAzureMonitorLogExporter(options =>
{
options.Credential = credential;
});
});
});
A Microsoft Entra ID-hitelesítés nem érhető el a GraalVM natív alkalmazásaihoz.
Támogatjuk az Azure Identity által biztosított hitelesítő osztályokat.
// Import the useAzureMonitor function, the AzureMonitorOpenTelemetryOptions class, and the ManagedIdentityCredential class from the @azure/monitor-opentelemetry and @azure/identity packages, respectively.
const { useAzureMonitor, AzureMonitorOpenTelemetryOptions } = require("@azure/monitor-opentelemetry");
const { ManagedIdentityCredential } = require("@azure/identity");
// Create a new ManagedIdentityCredential object.
const credential = new ManagedIdentityCredential();
// Create a new AzureMonitorOpenTelemetryOptions object and set the credential property to the credential object.
const options: AzureMonitorOpenTelemetryOptions = {
azureMonitorExporterOptions: {
connectionString:
process.env["APPLICATIONINSIGHTS_CONNECTION_STRING"] || "<your connection string>",
credential: credential
}
};
// Enable Azure Monitor integration using the useAzureMonitor function and the AzureMonitorOpenTelemetryOptions object.
useAzureMonitor(options);
A Pythonhoz készült Azure Monitor OpenTelemetry Distro támogatja az Azure Identity által biztosított hitelesítő osztályokat.
Helyi fejlesztéshez ajánljuk DefaultAzureCredential .
Rendszer által hozzárendelt és felhasználó által hozzárendelt felügyelt identitásokhoz javasoljuk ManagedIdentityCredential .
A rendszer által hozzárendelt alapértelmezett konstruktort használja paraméterek nélkül.
Felhasználó által hozzárendelt esetben adja meg a client_id konstruktornak.
A szolgáltatásnevek használatát javasoljuk ClientSecretCredential .
Adja meg a bérlőazonosítót, az ügyfélazonosítót és az ügyfél titkos kódját a konstruktornak.
Ha a ManagedIdentityCredential
# Import the `ManagedIdentityCredential` class from the `azure.identity` package.
from azure.identity import ManagedIdentityCredential
# Import the `configure_azure_monitor()` function from the `azure.monitor.opentelemetry` package.
from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace
# Configure the Distro to authenticate with Azure Monitor using a managed identity credential.
credential = ManagedIdentityCredential(client_id="<client_id>")
configure_azure_monitor(
connection_string="your-connection-string",
credential=credential,
)
tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("hello with aad managed identity"):
print("Hello, World!")
Ha a ClientSecretCredential
# Import the `ClientSecretCredential` class from the `azure.identity` package.
from azure.identity import ClientSecretCredential
# Import the `configure_azure_monitor()` function from the `azure.monitor.opentelemetry` package.
from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace
# Configure the Distro to authenticate with Azure Monitor using a client secret credential.
credential = ClientSecretCredential(
tenant_id="<tenant_id",
client_id="<client_id>",
client_secret="<client_secret>",
)
configure_azure_monitor(
connection_string="your-connection-string",
credential=credential,
)
with tracer.start_as_current_span("hello with aad client secret identity"):
print("Hello, World!")
Offline tárolás és automatikus újrapróbálkozás
A megbízhatóság és a rugalmasság javítása érdekében az Azure Monitor OpenTelemetry-alapú ajánlatai alapértelmezés szerint offline/helyi tárolóba írnak, ha egy alkalmazás elveszíti a kapcsolatot az Application Insightsszal. Menti az alkalmazás telemetriáját a lemezre, és rendszeresen megpróbálja újra elküldeni akár 48 órán keresztül. A nagy terhelésű alkalmazásokban a telemetriát időnként elvetik két okból. Először is, ha túllépi a megengedett időt, másodszor pedig a maximális fájlméret túllépésekor, vagy ha az SDK-nak nincs lehetősége a fájl törlésére. Ha választanunk kell, a termék a régiek fölé menti a legutóbbi eseményeket. További információ
A disztribúciós csomag tartalmazza az AzureMonitorExportert, amely alapértelmezés szerint az alábbi helyek egyikét használja offline tároláshoz (sorrendben felsorolva):
Windows
%LOCALAPPDATA%\Microsoft\AzureMonitor
%TEMP%\Microsoft\AzureMonitor
Nem Windows
%TMPDIR%/Microsoft/AzureMonitor
/var/tmp/Microsoft/AzureMonitor
/tmp/Microsoft/AzureMonitor
Az alapértelmezett könyvtár felülbírálásához be kell állítania AzureMonitorOptions.StorageDirectory.
// Create a new ASP.NET Core web application builder.
var builder = WebApplication.CreateBuilder(args);
// Add the OpenTelemetry telemetry service to the application.
// This service will collect and send telemetry data to Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor(options =>
{
// Set the Azure Monitor storage directory to "C:\\SomeDirectory".
// This is the directory where the OpenTelemetry SDK will store any telemetry data that cannot be sent to Azure Monitor immediately.
options.StorageDirectory = "C:\\SomeDirectory";
});
// Build the ASP.NET Core web application.
var app = builder.Build();
// Start the ASP.NET Core web application.
app.Run();
A funkció letiltásához be kell állítania a beállítást AzureMonitorOptions.DisableOfflineStorage = true.
Alapértelmezés szerint az AzureMonitorExporter az alábbi helyek egyikét használja offline tároláshoz (sorrendben felsorolva):
Windows
%LOCALAPPDATA%\Microsoft\AzureMonitor
%TEMP%\Microsoft\AzureMonitor
Nem Windows
%TMPDIR%/Microsoft/AzureMonitor
/var/tmp/Microsoft/AzureMonitor
/tmp/Microsoft/AzureMonitor
Az alapértelmezett könyvtár felülbírálásához be kell állítania AzureMonitorExporterOptions.StorageDirectory.
// Create a new OpenTelemetry tracer provider and set the storage directory.
// It is important to keep the TracerProvider instance active throughout the process lifetime.
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter(options =>
{
// Set the Azure Monitor storage directory to "C:\\SomeDirectory".
// This is the directory where the OpenTelemetry SDK will store any trace data that cannot be sent to Azure Monitor immediately.
options.StorageDirectory = "C:\\SomeDirectory";
});
// Create a new OpenTelemetry meter provider and set the storage directory.
// It is important to keep the MetricsProvider instance active throughout the process lifetime.
var metricsProvider = Sdk.CreateMeterProviderBuilder()
.AddAzureMonitorMetricExporter(options =>
{
// Set the Azure Monitor storage directory to "C:\\SomeDirectory".
// This is the directory where the OpenTelemetry SDK will store any metric data that cannot be sent to Azure Monitor immediately.
options.StorageDirectory = "C:\\SomeDirectory";
});
// Create a new logger factory and add the OpenTelemetry logger provider with the storage directory.
// It is important to keep the LoggerFactory instance active throughout the process lifetime.
var loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(logging =>
{
logging.AddAzureMonitorLogExporter(options =>
{
// Set the Azure Monitor storage directory to "C:\\SomeDirectory".
// This is the directory where the OpenTelemetry SDK will store any log data that cannot be sent to Azure Monitor immediately.
options.StorageDirectory = "C:\\SomeDirectory";
});
});
});
A funkció letiltásához be kell állítania a beállítást AzureMonitorExporterOptions.DisableOfflineStorage = true.
Az offline tárolás és az automatikus újrapróbálkozási lehetőségek konfigurálása nem érhető el a Java-ban.
Az offline tárolás és az automatikus újrapróbálkozási lehetőségek konfigurálása nem érhető el a Java natív rendszerkép-alkalmazásaiban.
Alapértelmezés szerint az AzureMonitorExporter az alábbi helyek egyikét használja offline tároláshoz.
Windows
%TEMP%\Microsoft\AzureMonitor
Nem Windows
%TMPDIR%/Microsoft/AzureMonitor
/var/tmp/Microsoft/AzureMonitor
Az alapértelmezett könyvtár felülbírálásához be kell állítania storageDirectory.
Példa:
// Import the useAzureMonitor function and the AzureMonitorOpenTelemetryOptions class from the @azure/monitor-opentelemetry package.
const { useAzureMonitor, AzureMonitorOpenTelemetryOptions } = require("@azure/monitor-opentelemetry");
// Create a new AzureMonitorOpenTelemetryOptions object and set the azureMonitorExporterOptions property to an object with the following properties:
//
// * connectionString: The connection string for your Azure Monitor Application Insights resource.
// * storageDirectory: The directory where the Azure Monitor OpenTelemetry exporter will store telemetry data when it is offline.
// * disableOfflineStorage: A boolean value that specifies whether to disable offline storage.
const options: AzureMonitorOpenTelemetryOptions = {
azureMonitorExporterOptions: {
connectionString: "<Your Connection String>",
storageDirectory: "C:\\SomeDirectory",
disableOfflineStorage: false
}
};
// Enable Azure Monitor integration using the useAzureMonitor function and the AzureMonitorOpenTelemetryOptions object.
useAzureMonitor(options);
A funkció letiltásához be kell állítania a beállítást disableOfflineStorage = true.
Alapértelmezés szerint az Azure Monitor-exportőrök a következő elérési utat használják:
Az alapértelmezett könyvtár felülbírálásához állítsa be storage_directory a kívánt könyvtárat.
Példa:
...
# Configure OpenTelemetry to use Azure Monitor with the specified connection string and storage directory.
# Replace `your-connection-string` with the connection string to your Azure Monitor Application Insights resource.
# Replace `C:\\SomeDirectory` with the directory where you want to store the telemetry data before it is sent to Azure Monitor.
configure_azure_monitor(
connection_string="your-connection-string",
storage_directory="C:\\SomeDirectory",
)
...
A funkció letiltásához állítsa be a következőt disable_offline_storageTrue: . Alapértelmezett érték: False.
Példa:
...
# Configure OpenTelemetry to use Azure Monitor with the specified connection string and disable offline storage.
# Replace `your-connection-string` with the connection string to your Azure Monitor Application Insights resource.
configure_azure_monitor(
connection_string="your-connection-string",
disable_offline_storage=True,
)
...
Az OTLP-exportőr engedélyezése
Érdemes engedélyeznie az OpenTelemetry Protocol (OTLP) exportőrt az Azure Monitor-exportőr mellett, hogy a telemetriát két helyre küldje.
Feljegyzés
Az OTLP-exportőr csak kényelmi okokból jelenik meg. Hivatalosan nem támogatjuk az OTLP-exportőrt, illetve annak bármely összetevőjét vagy harmadik féltől származó tapasztalatait.
Adja hozzá a következő kódrészletet. Ez a példa feltételezi, hogy rendelkezik egy OpenTelemetria-gyűjtővel, amelyen egy OTLP-fogadó fut. További részletekért tekintse meg a GitHubon található példát.
// Create a new ASP.NET Core web application builder.
var builder = WebApplication.CreateBuilder(args);
// Add the OpenTelemetry telemetry service to the application.
// This service will collect and send telemetry data to Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();
// Add the OpenTelemetry OTLP exporter to the application.
// This exporter will send telemetry data to an OTLP receiver, such as Prometheus
builder.Services.AddOpenTelemetry().WithTracing(builder => builder.AddOtlpExporter());
builder.Services.AddOpenTelemetry().WithMetrics(builder => builder.AddOtlpExporter());
// Build the ASP.NET Core web application.
var app = builder.Build();
// Start the ASP.NET Core web application.
app.Run();
Adja hozzá a következő kódrészletet. Ez a példa feltételezi, hogy rendelkezik egy OpenTelemetria-gyűjtővel, amelyen egy OTLP-fogadó fut. További részletekért tekintse meg a GitHubon található példát.
// Create a new OpenTelemetry tracer provider and add the Azure Monitor trace exporter and the OTLP trace exporter.
// It is important to keep the TracerProvider instance active throughout the process lifetime.
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter()
.AddOtlpExporter();
// Create a new OpenTelemetry meter provider and add the Azure Monitor metric exporter and the OTLP metric exporter.
// It is important to keep the MetricsProvider instance active throughout the process lifetime.
var metricsProvider = Sdk.CreateMeterProviderBuilder()
.AddAzureMonitorMetricExporter()
.AddOtlpExporter();
Adja hozzá a következő kódrészletet. Ez a példa feltételezi, hogy rendelkezik egy OpenTelemetria-gyűjtővel, amelyen egy OTLP-fogadó fut. További részletekért tekintse meg a GitHubon található példát.
// Import the useAzureMonitor function, the AzureMonitorOpenTelemetryOptions class, the trace module, the ProxyTracerProvider class, the BatchSpanProcessor class, the NodeTracerProvider class, and the OTLPTraceExporter class from the @azure/monitor-opentelemetry, @opentelemetry/api, @opentelemetry/sdk-trace-base, @opentelemetry/sdk-trace-node, and @opentelemetry/exporter-trace-otlp-http packages, respectively.
const { useAzureMonitor, AzureMonitorOpenTelemetryOptions } = require("@azure/monitor-opentelemetry");
const { BatchSpanProcessor } = require('@opentelemetry/sdk-trace-base');
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
// Create a new OTLPTraceExporter object.
const otlpExporter = new OTLPTraceExporter();
// Enable Azure Monitor integration.
const options: AzureMonitorOpenTelemetryOptions = {
// Add the SpanEnrichingProcessor
spanProcessors: [new BatchSpanProcessor(otlpExporter)]
}
useAzureMonitor(options);
Adja hozzá a következő kódrészletet. Ez a példa feltételezi, hogy rendelkezik egy OpenTelemetria-gyűjtővel, amelyen egy OTLP-fogadó fut. További részletekért tekintse meg ezt a README-et.
# Import the `configure_azure_monitor()`, `trace`, `OTLPSpanExporter`, and `BatchSpanProcessor` classes from the appropriate packages.
from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace.export import BatchSpanProcessor
# Configure OpenTelemetry to use Azure Monitor with the specified connection string.
# Replace `<your-connection-string>` with the connection string to your Azure Monitor Application Insights resource.
configure_azure_monitor(
connection_string="<your-connection-string>",
)
# Get the tracer for the current module.
tracer = trace.get_tracer(__name__)
# Create an OTLP span exporter that sends spans to the specified endpoint.
# Replace `http://localhost:4317` with the endpoint of your OTLP collector.
otlp_exporter = OTLPSpanExporter(endpoint="http://localhost:4317")
# Create a batch span processor that uses the OTLP span exporter.
span_processor = BatchSpanProcessor(otlp_exporter)
# Add the batch span processor to the tracer provider.
trace.get_tracer_provider().add_span_processor(span_processor)
# Start a new span with the name "test".
with tracer.start_as_current_span("test"):
print("Hello world!")
OpenTelemetria-konfigurációk
Az alábbi OpenTelemetria-konfigurációk környezeti változókon keresztül érhetők el az Azure Monitor OpenTelemetry Distros használata közben.
Állítsa be az Application Insights-erőforrás kapcsolati sztring.
APPLICATIONINSIGHTS_STATSBEAT_DISABLED
Állítsa be úgy, hogy true kikapcsolja a belső metrikák gyűjteményét.
OTEL_RESOURCE_ATTRIBUTES
Erőforrásattribútumként használandó kulcs-érték párok. Az erőforrásattribútumokról további információt az Erőforrás SDK specifikációjában talál.
OTEL_SERVICE_NAME
Beállítja service.name az erőforrásattribútum értékét. Ha service.name ez is meg van adva OTEL_RESOURCE_ATTRIBUTES, akkor OTEL_SERVICE_NAME elsőbbséget élvez.
Környezeti változó
Leírás
APPLICATIONINSIGHTS_CONNECTION_STRING
Állítsa be az Application Insights-erőforrás kapcsolati sztring.
APPLICATIONINSIGHTS_STATSBEAT_DISABLED
Állítsa be úgy, hogy true kikapcsolja a belső metrikák gyűjteményét.
OTEL_RESOURCE_ATTRIBUTES
Erőforrásattribútumként használandó kulcs-érték párok. Az erőforrásattribútumokról további információt az Erőforrás SDK specifikációjában talál.
OTEL_SERVICE_NAME
Beállítja service.name az erőforrásattribútum értékét. Ha service.name ez is meg van adva OTEL_RESOURCE_ATTRIBUTES, akkor OTEL_SERVICE_NAME elsőbbséget élvez.
Az OpenTelemetria SDK konfigurálásával kapcsolatos további információkért tekintse meg az OpenTelemetria dokumentációját és az Azure Monitor Disztribúciós használatát.