Tato příručka vysvětluje, jak nakonfigurovat OpenTelemetry (OTel) v Azure Monitor Application Insights pomocí distribuce Azure Monitor OpenTelemetry. Správná konfigurace zajišťuje konzistentní shromažďování telemetrických dat napříč .NET, Java, Node.jsa Python aplikacemi, což umožňuje spolehlivější monitorování a diagnostiku.
Řetězec připojení
V Application Insights definuje připojovací řetězec cílové umístění pro odesílání telemetrických dat.
Ke konfiguraci připojovací řetězec použijte jeden z následujících tří způsobů:
Přidejte UseAzureMonitor() do program.cs souboru.
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();
Nastavte proměnnou prostředí.
APPLICATIONINSIGHTS_CONNECTION_STRING=<YOUR-CONNECTION-STRING>
Do konfiguračního souboru přidejte následující část appsettings.json .
{
"AzureMonitor": {
"ConnectionString": "<YOUR-CONNECTION-STRING>"
}
}
Poznámka:
Pokud nastavíte připojovací řetězec na více než jednom místě, platí následující pořadí priority:
- Code
- Proměnná prostředí
- Konfigurační soubor
Ke konfiguraci připojovací řetězec použijte jednu z následujících dvou metod:
Přidejte Azure Monitor Exportér do každého signálu OpenTelemetry při spuštění aplikace.
// 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>";
})
.Build();
// 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>";
})
.Build();
// 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>";
});
});
});
Nastavte proměnnou prostředí.
APPLICATIONINSIGHTS_CONNECTION_STRING=<YOUR-CONNECTION-STRING>
Poznámka:
Pokud nastavíte připojovací řetězec na více než jednom místě, platí následující pořadí priority:
- Code
- Proměnná prostředí
Ke konfiguraci připojovací řetězec použijte jeden z následujících tří způsobů:
Do konfiguračního souboruapplicationinsights.json přidejte následující část.
{
"connectionString": "..."
}
Můžete také nastavit připojovací řetězec zadáním souboru, ze něhož se má načíst. Soubor by měl obsahovat pouze připojovací řetězec a nic jiného. Pokud zadáte relativní cestu, vyhodnotí se vzhledem k adresáři, ve kterém se nachází applicationinsights-agent-3.7.8.jar.
{
"connectionString": "${file:connection-string-file.txt}"
}
Nastavte proměnnou prostředí.
APPLICATIONINSIGHTS_CONNECTION_STRING
Přidat applicationinsights.connection.string jako systémovou vlastnost
java -javaagent:/path/to/applicationinsights-agent-3.7.8.jar \
-Dapplicationinsights.connection.string="<YOUR-CONNECTION-STRING>" \
-jar myapp.jar
Poznámka:
Pokud nastavíte připojovací řetězec na více než jednom místě, dodržujeme následující prioritu:
- Systémová vlastnost
- Proměnná prostředí
- Konfigurační soubor
Pokud nasadíte více aplikací ve stejném virtuálním počítači Java (JVM) a chcete, aby odesílaly telemetrii do různých připojovacích řetězců, viz téma přepsání připojovacích řetězců (preview).
Ke konfiguraci připojovací řetězec použijte jeden z následujících dvou způsobů:
Nastavte proměnnou prostředí.
APPLICATIONINSIGHTS_CONNECTION_STRING=<YOUR-CONNECTION-STRING>
Nastavte vlastnost.
applicationinsights.connection.string=<YOUR-CONNECTION-STRING>
Návod
-
TypeScript vzorky pro Azure Monitor OpenTelemetry (zdroj autoritativní parity): TypeScript vzorky
Ke konfiguraci připojovací řetězec použijte jeden z následujících dvou způsobů:
Nastavte proměnnou prostředí.
APPLICATIONINSIGHTS_CONNECTION_STRING=<YOUR-CONNECTION-STRING>
Použijte objekt konfigurace.
export class BasicConnectionSample {
static async run() {
const { useAzureMonitor } = await import("@azure/monitor-opentelemetry");
const options = {
azureMonitorExporterOptions: {
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR-CONNECTION-STRING>",
},
};
const monitor = useAzureMonitor(options);
console.log("Azure Monitor initialized");
}
}
Ke konfiguraci připojovací řetězec použijte jeden z následujících dvou způsobů:
Nastavte proměnnou prostředí.
APPLICATIONINSIGHTS_CONNECTION_STRING=<YOUR-CONNECTION-STRING>
Použijte funkci configure_azure_monitor.
# 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>",
)
Nastavení názvu cloudové role a instance cloudové role
V případě podporovaných jazyků zařízení Azure Monitor OpenTelemetry automaticky rozpozná kontext prostředku a poskytne výchozí hodnoty pro Název role cloudu a vlastnosti instance role v cloudu vaší komponenty. Můžete ale chtít přepsat výchozí hodnoty na něco, co dává vašemu týmu smysl. Hodnota názvu cloudové role se zobrazí na mapě aplikace jako název zobrazený pod uzlem.
Nastavte název cloudové role a instanci cloudové role prostřednictvím atributů prostředků . Název cloudové role používá atributy service.namespace a service.name, ale pokud service.name není nastavený, vrátí se na service.namespace. Cloudová instance role používá hodnotu atributu service.instance.id. Informace o standardních atributech pro prostředky naleznete v tématu sémantické konvence OpenTelemetry.
// 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(resourceAttributes));
// Build the ASP.NET Core web application.
var app = builder.Build();
// Start the ASP.NET Core web application.
app.Run();
Nastavte název cloudové role a instanci cloudové role prostřednictvím atributů prostředků . Název cloudové role používá atributy service.namespace a service.name, ale pokud service.name není nastavený, vrátí se na service.namespace. Cloudová instance role používá hodnotu atributu service.instance.id. Informace o standardních atributech pro prostředky naleznete v tématu sémantické konvence OpenTelemetry.
// 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()
.Build();
// 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()
.Build();
// 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();
});
});
Poznámka:
Pokud nenastavíte název cloudové role a instanci cloudové role, název cloudové role se ve výchozím nastavení nastaví na název vašeho prostředku Application Insights a instance cloudové role se ve výchozím nastavení nastaví na název počítače.
Ke konfiguraci názvu cloudové role a instance cloudové role použijte jeden z následujících tří způsobů:
Do konfiguračního souboruapplicationinsights.json přidejte následující část.
{
"role": {
// Set the cloud role name
"name": "my cloud role name",
// Set the cloud role instance
"instance": "my cloud role instance"
}
}
Nastavte proměnné prostředí.
APPLICATIONINSIGHTS_ROLE_NAME
APPLICATIONINSIGHTS_ROLE_INSTANCE
Přidejte applicationinsights.role.name a applicationinsights.role.instance jako systémové vlastnosti.
java -javaagent:/path/to/applicationinsights-agent-3.7.8.jar \
-Dapplicationinsights.role.name="my-cloud-role-name" \
-Dapplicationinsights.role.instance="my-cloud-role-instance" \
-jar myapp.jar
Poznámka:
Pokud nastavíte název cloudové role a instanci cloudové role na více než jednom místě, platí následující pořadí priorit:
- Systémová vlastnost
- Proměnná prostředí
- Konfigurační soubor
Pokud nasadíte více aplikací ve stejném JVM a chcete, aby odesílaly telemetrii pro různé názvy cloudových rolí, přečtěte si téma Nahrazení názvu cloudové role (předběžná verze).
Nastavení názvu cloudové role:
- Použijte
spring.application.name pro nativní obrazové aplikace Spring Bootu.
- Použijte
quarkus.application.name pro nativní obrazové aplikace Quarkus.
Poznámka:
Komunita Quarkus podporuje a udržuje rozšíření Quarkus. Pokud potřebujete pomoc, použijte kanály podpory komunity Quarkus. Microsoft neposkytuje technickou podporu pro tuto integraci.
Nastavte název cloudové role a instanci cloudové role prostřednictvím atributů prostředků . Název cloudové role používá atributy service.namespace a service.name, ale pokud service.name není nastavený, vrátí se na service.namespace. Cloudová instance role používá hodnotu atributu service.instance.id. Informace o standardních atributech pro prostředky naleznete v tématu sémantické konvence OpenTelemetry.
export class CloudRoleSample {
static async run() {
const { useAzureMonitor } = await import("@azure/monitor-opentelemetry");
const { resourceFromAttributes } = await import("@opentelemetry/resources");
const { ATTR_SERVICE_NAME } = await import("@opentelemetry/semantic-conventions");
const { ATTR_SERVICE_NAMESPACE, ATTR_SERVICE_INSTANCE_ID } =
await import("@opentelemetry/semantic-conventions/incubating");
const customResource = resourceFromAttributes({
[ATTR_SERVICE_NAME]: process.env.OTEL_SERVICE_NAME || "my-service",
[ATTR_SERVICE_NAMESPACE]: process.env.OTEL_SERVICE_NAMESPACE || "my-namespace",
[ATTR_SERVICE_INSTANCE_ID]: process.env.OTEL_SERVICE_INSTANCE_ID || "my-instance",
});
const options = {
resource: customResource,
azureMonitorExporterOptions: {
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR-CONNECTION-STRING>",
},
};
const monitor = useAzureMonitor(options);
console.log("Azure Monitor initialized (custom resource)");
}
}
Nastavte název cloudové role a instanci cloudové role prostřednictvím atributů prostředků . Název cloudové role používá atributy service.namespace a service.name, a pokud není service.name nastaven, použije se service.namespace. Cloudová instance role používá hodnotu atributu service.instance.id. Informace o standardních atributech pro prostředky naleznete v tématu sémantické konvence OpenTelemetry.
Nastavte atributy prostředku pomocí proměnných prostředí OTEL_RESOURCE_ATTRIBUTES a/nebo OTEL_SERVICE_NAME.
OTEL_RESOURCE_ATTRIBUTES přebírá řadu párů klíč-hodnota oddělených čárkami. Pokud například chcete nastavit název cloudové role jako my-namespace.my-helloworld-service a instanci cloudové role jako my-instance, můžete nastavit OTEL_RESOURCE_ATTRIBUTES a OTEL_SERVICE_NAME takto:
export OTEL_RESOURCE_ATTRIBUTES="service.namespace=my-namespace,service.instance.id=my-instance"
export OTEL_SERVICE_NAME="my-helloworld-service"
Pokud nenastavíte atribut service.namespace Resource, můžete místo toho nastavit název cloudové role pomocí proměnné prostředí OTEL_SERVICE_NAME nebo atributu service.name Resource. Pokud například chcete nastavit název cloudové role jako my-helloworld-service a instanci cloudové role jako my-instance, můžete nastavit OTEL_RESOURCE_ATTRIBUTES a OTEL_SERVICE_NAME takto:
export OTEL_RESOURCE_ATTRIBUTES="service.instance.id=my-instance"
export OTEL_SERVICE_NAME="my-helloworld-service"
Nastavení atributů prostředků
Automatická instrumentace a distribuce Azure Monitor umožní detekovat prostředky při spuštění v prostředích Azure, která jsou podporována. Další informace najdete v tématu Automatické shromažďování dat a detektory prostředků pro Azure Monitor OpenTelemetry.
Pro ruční nastavení nastavte atributy prostředků přímo pomocí standardních možností OpenTelemetry:
# Applies to .NET (ASP.NET/ASP.NET Core), Java, Node.js, and Python
export OTEL_SERVICE_NAME="my-service"
export OTEL_RESOURCE_ATTRIBUTES="cloud.provider=azure,cloud.region=westus,cloud.resource_id=/subscriptions/<SUB>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<APP>"
V Windows PowerShellu:
$Env:OTEL_SERVICE_NAME="my-service"
$Env:OTEL_RESOURCE_ATTRIBUTES="cloud.provider=azure,cloud.region=westus,cloud.resource_id=/subscriptions/<SUB>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<APP>"
Povolení vzorkování
Vzorkování snižuje objem a náklady na příjem telemetrie. Azure Monitor distribuce OpenTelemetry podporuje dvě strategie vzorkování pro trasování a (volitelně) umožňuje synchronizovat protokoly aplikací s vašimi rozhodnutími o vzorkování trasování. Sampler připojí vybraný poměr vzorkování nebo míru k exportovaným rozsahům, aby Application Insights mohl upravit počty zkušeností přesně. Koncepční přehled najdete v tématu Další informace o vzorkování.
Důležité
- Rozhodnutí o vzorkování se vztahují na stopy (rozsahy).
-
Logy, které patří k netrasovaným záznamům, se ve výchozím nastavení zahodí, ale můžete deaktivovat vzorkování protokolů založené na trasách.
-
Metriky se nikdy neprovádí vzorkování.
Pomocí standardních proměnných prostředí OpenTelemetry vyberte sampler a zadejte jeho argument. Další informace o typech vzorkovníků OpenTelemetry najdete v tématu OTEL_TRACES_SAMPLER.
Poznámka:
Počínaje Java agentem verze 3.4.0 je k dispozici vzorkování s omezením rychlosti a je teď výchozí.
Vzorkování se vztahuje pouze na protokoly uvnitř požadavku. Protokoly, které nejsou uvnitř požadavku (například spouštěcí protokoly), se ve výchozím nastavení shromažďují vždy. Chcete-li tyto logy vzorkovat, použijte možnosti vzorkování.
Vzorkování s pevným procentem
-
APPLICATIONINSIGHTS_SAMPLING_PERCENTAGE Procento vzorkování
- Hodnota je procento (například
33.333 = ~33,333%).
Vzorkování s omezením rychlosti
-
APPLICATIONINSIGHTS_SAMPLING_REQUESTS_PER_SECOND maximální počet žádostí za sekundu
Možnosti konfigurace a příklady najdete v tématu Nastavení přepisů vzorkování.
Následující příklady ukazují, jak nakonfigurovat vzorkování pomocí proměnných prostředí.
Poznámka:
Následující příklady nejsou platné pro Java. Pro správné proměnné prostředí se podívejte na předchozí kartu Java.
Vzorkování s pevným procentem (~10%)
export OTEL_TRACES_SAMPLER="microsoft.fixed_percentage"
export OTEL_TRACES_SAMPLER_ARG=0.1
Vzorkování omezené rychlostí (přibližně 1,5 trasování za sekundu)
export OTEL_TRACES_SAMPLER="microsoft.rate_limited"
export OTEL_TRACES_SAMPLER_ARG=1.5
Poznámka:
Pokud jsou nakonfigurované možnosti na úrovni kódu i proměnné prostředí, mají proměnné prostředí přednost. Výchozí chování vzorkovníku se může lišit podle jazyka.
Pevné procento vzorkování
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenTelemetry().UseAzureMonitor(o =>
{
o.SamplingRatio = 0.1F; // ~10%
});
var app = builder.Build();
app.Run();
Vzorkování s omezením rychlosti
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenTelemetry().UseAzureMonitor(o =>
{
o.TracesPerSecond = 1.5; // ~1.5 traces/sec
});
var app = builder.Build();
app.Run();
Poznámka:
Pokud v kódu nebo prostřednictvím proměnných prostředí nenastavíte sampler, Azure Monitor ve výchozím nastavení použije ApplicationInsightsSampler.
Pevné procento vzorkování
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter(o => o.SamplingRatio = 0.1F)
.Build();
Vzorkování s omezením rychlosti
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter(o => o.TracesPerSecond = 1.5F)
.Build();
Poznámka:
Pokud v kódu nebo prostřednictvím proměnných prostředí nenastavíte sampler, Azure Monitor ve výchozím nastavení použije ApplicationInsightsSampler.
Pro Java nemůžete nakonfigurovat vzorkování v kódu.
Od verze 1.16.0 je omezené vzorkování výchozí.
Pevné procento vzorkování
const { useAzureMonitor } = await import("@azure/monitor-opentelemetry");
const monitor = useAzureMonitor({
samplingRatio: 0.1, // ~10%
azureMonitorExporterOptions: {
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR-CONNECTION-STRING>",
},
});
Vzorkování s omezením rychlosti
const { useAzureMonitor } = await import("@azure/monitor-opentelemetry");
const monitor = useAzureMonitor({
tracesPerSecond: 1.5, // ~1.5 traces/sec
azureMonitorExporterOptions: {
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR-CONNECTION-STRING>",
},
});
Poznámka:
Pokud v kódu nebo prostřednictvím proměnných prostředí nenastavíte sampler, Azure Monitor ve výchozím nastavení použije RateLimitedSampler.
Od verze 1.8.6 je výchozím nastavením vzorkování s omezenou rychlostí.
Pevné procento vzorkování
from azure.monitor.opentelemetry import configure_azure_monitor
configure_azure_monitor(
connection_string="<YOUR-CONNECTION-STRING>",
sampling_ratio=0.1, # 0.1 = 10% of traces sampled
)
Vzorkování s omezením rychlosti
from azure.monitor.opentelemetry import configure_azure_monitor
configure_azure_monitor(
connection_string="<YOUR-CONNECTION-STRING>",
traces_per_second=1.5, # ~1.5 traces/sec
)
Poznámka:
Pokud nenastavíte žádné proměnné prostředí nebo zadáte buď sampling_ratio nebo traces_per_second, configure_azure_monitor() použije ve výchozím nastavení RateLimitedSampler.
Návod
Při použití vzorkování s pevným procentem a nevíte, jakou hodnotu pro vzorkovací frekvenci nastavíte, začněte na 5% (0.05). Upravte rychlost podle přesnosti operací zobrazených v oknech selhání a výkonu. Jakékoli vzorkování snižuje přesnost, proto sledujte metriky OpenTelemetry, které nejsou ovlivněné vzorkováním.
Konfigurace vzorkování v konfiguračním souboru není pro ASP.NET Core podporovaná. Ke konfiguraci vzorkování použijte místo toho kód nebo proměnné prostředí.
Konfigurace vzorkování v konfiguračním souboru není pro .NET podporovaná. Ke konfiguraci vzorkování použijte místo toho kód nebo proměnné prostředí.
Poznámka:
Počínaje Java agentem verze 3.4.0 je k dispozici vzorkování s omezením rychlosti a je teď výchozí.
Vzorkování se vztahuje pouze na protokoly uvnitř požadavku. Protokoly, které nejsou uvnitř požadavku (například spouštěcí protokoly), se ve výchozím nastavení shromažďují vždy. Chcete-li tyto logy vzorkovat, použijte možnosti vzorkování.
Pokud vzorkování nenakonfigurujete, výchozí nastavení je teď omezené rychlostí, které je nakonfigurované tak, aby zachytává maximálně (přibližně) pět požadavků za sekundu spolu se všemi závislostmi a protokoly těchto požadavků.
Tato konfigurace nahrazuje předchozí výchozí nastavení, které bylo zachytávat všechny požadavky. Pokud stále chcete zaznamenávat všechny požadavky, použijte vzorkování s pevným procentem a nastavte procento vzorkování na 100.
Pevné procento vzorkování
Tento příklad ukazuje, jak nastavit vzorkování tak, aby zachytilo přibližně třetinu všech požadavků:
{
"sampling": {
"percentage": 33.333
}
}
Nastavte procento vzorkování pomocí systémové proměnné. Má přednost před procentem vzorkování zadaným v konfiguraci JSON.
Návod
Pro procento vzorkování zvolte procento, které je blízko 100/N, kde N je celé číslo. Vzorkování v současné době jiné hodnoty nepodporuje.
Vzorkování s omezením rychlosti
Poznámka:
Vzorkování s omezením rychlosti je přibližné, protože interně musí v průběhu času přizpůsobit "pevné" procento vzorkování, aby bylo možné generovat přesné počty položek na každém záznamu telemetrie. Vzorkování s omezením rychlosti je interně vyladěno tak, aby se rychle přizpůsobilo načítání nových aplikací (0,1 sekund). Z tohoto důvodu byste neměli vidět, že by překročilo nakonfigurovanou rychlost o mnoho, ani na velmi dlouhou dobu.
Tento příklad ukazuje, jak nastavit vzorkování na zachytávání maximálně (přibližně) jednoho požadavku za sekundu:
{
"sampling": {
"requestsPerSecond": 1.0
}
}
Hodnota requestsPerSecond může být desítková, takže ji můžete nakonfigurovat tak, aby v případě potřeby zachytála méně než jeden požadavek za sekundu. Například hodnota 0.5 znamená zachytávání maximálně jednoho požadavku každých 2 sekundy.
Nastavte limit rychlosti pomocí prostřední proměnné. Má přednost před limitem rychlosti zadaným v konfiguraci JSON.
Java nativní nepodporuje konfiguraci vzorkování v konfiguračním souboru. Ke konfiguraci vzorkování použijte kód nebo proměnné prostředí.
Od verze 1.16.0 je omezené vzorkování výchozí.
Nastavte konfiguraci vzorkování v souboruapplicationinsights.json . Tento soubor se nachází v kořenové složce instalační složky @azure/monitor-opentelemetry balíčku, například node_modules/@azure/monitor-opentelemetry. Všechny AzureMonitorOpenTelemetryClient instance používají tyto konfigurační hodnoty.
Pevné procento vzorkování
{
"samplingRatio": 0.1, // ~10%
}
Vzorkování s omezením rychlosti
{
"samplingRatio": 1.5, // ~1.5 traces/sec
}
Python nepodporuje konfiguraci vzorkování v konfiguračním souboru. Ke konfiguraci vzorkování použijte kód nebo proměnné prostředí.
Když tuto funkci povolíte, systém zahodí záznamy protokolu, které patří do nevzorkovaných trasování, aby vaše protokoly zůstaly v souladu s vzorkováním trasování.
- Záznam protokolu je součástí trasování, pokud má platný
SpanId.
- Pokud přidružené trasování
TraceFlags indikuje není vzorkováno, funkce zahodí záznam protokolu.
- Záznamy protokolu bez kontextu trasování nejsou ovlivněny.
- Funkce je ve výchozím nastavení povolená.
Pro konfiguraci vzorkování logů založeného na sledování použijte následující nastavení.
builder.Services.AddOpenTelemetry().UseAzureMonitor(o =>
{
o.EnableTraceBasedLogsSampler = true;
});
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter(o => o.EnableTraceBasedLogsSampler = true)
.Build();
U Java aplikací je ve výchozím nastavení povolené vzorkování založené na trasování.
Pro nativní aplikace Spring Boot a nativní aplikace Quarkus je ve výchozím nastavení povolené vzorkování založené na trasování.
Poznámka:
Komunita Quarkus podporuje a udržuje rozšíření Quarkus. Pokud potřebujete pomoc, použijte kanály podpory komunity Quarkus. Microsoft neposkytuje technickou podporu pro tuto integraci.
const { useAzureMonitor } = await import("@azure/monitor-opentelemetry");
const monitor = useAzureMonitor({
enableTraceBasedSamplingForLogs: true,
azureMonitorExporterOptions: {
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR-CONNECTION-STRING>",
},
});
from azure.monitor.opentelemetry import configure_azure_monitor
configure_azure_monitor(
connection_string="<YOUR-CONNECTION-STRING>",
enable_trace_based_sampling_for_logs=True,
)
Živé metriky
Živé metriky poskytují řídicí panel analýzy v reálném čase pro přehled o aktivitě a výkonu aplikací.
Tato funkce je ve výchozím nastavení povolena.
Uživatelé můžou při konfiguraci distribuce zakázat živé metriky.
builder.Services.AddOpenTelemetry().UseAzureMonitor(options => {
// Disable the Live Metrics feature.
options.EnableLiveMetrics = false;
});
Tato funkce není v Azure Monitor .NET Exportéru dostupná.
Živé metriky nejsou dostupné pro nativní aplikace GraalVM.
Uživatelé mohou povolit nebo zakázat živé metriky při konfiguraci distribuce pomocí enableLiveMetrics vlastnosti.
export class LiveMetricsSample {
static async run() {
const { useAzureMonitor } = await import("@azure/monitor-opentelemetry");
const options = {
azureMonitorExporterOptions: {
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR-CONNECTION-STRING>",
},
enableLiveMetrics: true, // set to false to disable
};
const monitor = useAzureMonitor(options);
console.log("Azure Monitor initialized (live metrics enabled)");
}
}
Živé metriky můžete povolit pomocí distribuce OpenTelemetry Azure monitorovacího pro Python takto:
...
configure_azure_monitor(
enable_live_metrics=True
)
...
Pokud chcete vytvořit bezpečnější připojení k Azure, povolte ověřování Microsoft Entra. Tato metoda ověřování zabraňuje ingestování neautorizované telemetrie do vašeho předplatného.
Další informace najdete na vyhrazené stránce s autentizací Microsoft Entra s odkazem pro každý podporovaný jazyk.
Ověřování Microsoft Entra ID není k dispozici pro nativní aplikace GraalVM.
Offline úložiště dat a automatické opakování
Azure Monitor nabídky založené na OpenTelemetry ukládají telemetrii do mezipaměti, když se aplikace odpojí od Application Insights a opakují pokus o odeslání po dobu až 48 hodin. Doporučení pro zpracování dat najdete v tématu Export a odstranění privátních dat. Aplikace s vysokým zatížením občas zahazují telemetrii ze dvou důvodů: překročení povolené doby nebo překročení maximální velikosti souboru. V případě potřeby produkt upřednostňuje nedávné události oproti starým událostem.
Balíček Distro obsahuje AzureMonitorExporter, který ve výchozím nastavení používá pro offline úložiště jedno z následujících umístění (v pořadí podle priority):
Windows
- %LOCALAPPDATA%\Microsoft\AzureMonitor
- %TEMP%\Microsoft\AzureMonitor
Bez Windows
- %TMPDIR%/Microsoft/AzureMonitor
- /var/tmp/Microsoft/AzureMonitor
- /tmp/Microsoft/AzureMonitor
Pokud chcete přepsat výchozí adresář, měli byste nastavit 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 can't 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();
Chcete-li tuto funkci zakázat, nastavte AzureMonitorOptions.DisableOfflineStorage = true.
AzureMonitorExporter ve výchozím nastavení používá jedno z následujících umístění pro offline úložiště uvedené v pořadí podle priority:
Windows
- %LOCALAPPDATA%\Microsoft\AzureMonitor
- %TEMP%\Microsoft\AzureMonitor
Bez Windows
- %TMPDIR%/Microsoft/AzureMonitor
- /var/tmp/Microsoft/AzureMonitor
- /tmp/Microsoft/AzureMonitor
Pokud chcete přepsat výchozí adresář, měli byste nastavit 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 can't be sent to Azure Monitor immediately.
options.StorageDirectory = "C:\\SomeDirectory";
})
.Build();
// 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 can't be sent to Azure Monitor immediately.
options.StorageDirectory = "C:\\SomeDirectory";
})
.Build();
// 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 can't be sent to Azure Monitor immediately.
options.StorageDirectory = "C:\\SomeDirectory";
});
});
});
Chcete-li tuto funkci zakázat, nastavte AzureMonitorExporterOptions.DisableOfflineStorage = true.
Když agent nemůže odesílat telemetrii do Azure Monitor, ukládá na disk soubory telemetrie. Soubory jsou uloženy ve telemetry složce pod adresářem určeným java.io.tmpdir systémovou vlastností. Každý název souboru začíná časovým razítkem a končí příponou .trn . Tento offline mechanismus úložiště pomáhá zajistit zachování telemetrie během dočasných výpadků sítě nebo selhání příjmu dat.
Agent ve výchozím nastavení ukládá až 50 MB telemetrických dat a umožňuje konfiguraci limitu úložiště. Agent se pravidelně pokouší odesílat uloženou telemetrii. Soubory telemetrie starší než 48 hodin se odstraní a při dosažení limitu úložiště se nejstarší události zahodí.
Úplný seznam dostupných konfigurací najdete v tématu Možnosti konfigurace.
Když agent nemůže odesílat telemetrii do Azure Monitor, ukládá na disk soubory telemetrie. Soubory jsou uloženy ve telemetry složce pod adresářem určeným java.io.tmpdir systémovou vlastností. Každý název souboru začíná časovým razítkem a končí příponou .trn . Tento offline mechanismus úložiště pomáhá zajistit zachování telemetrie během dočasných výpadků sítě nebo selhání příjmu dat.
Agent ve výchozím nastavení ukládá až 50 MB telemetrických dat. Pokusy o odesílání uložených telemetrických dat se pravidelně provádějí. Soubory telemetrie starší než 48 hodin se odstraní a při dosažení limitu úložiště se nejstarší události zahodí.
Ve výchozím nastavení azureMonitorExporter používá pro offline úložiště jednu z následujících umístění.
- Windows
- %TEMP%\Microsoft-AzureMonitor-
<unique-identifier>\opentelemetry-nodejs-<your-instrumentation-key>
- Bez Windows
- %TMPDIR%/Microsoft/Microsoft-AzureMonitor-
<unique-identifier>/opentelemetry-nodejs-<your-instrumentation-key>
- /var/tmp/Microsoft/Microsoft-AzureMonitor-
<unique-identifier>/opentelemetry-nodejs-<your-instrumentation-key>
Jedná se <unique-identifier> o hodnotu hash vytvořenou z atributů uživatelského prostředí, jako je instrumentační klíč, název procesu, uživatelské jméno a adresář aplikace. Tento identifikátor řeší běžný problém s více uživateli: když první uživatel vytvoří adresář úložiště, oprávnění k souborům (nastavení umask) můžou ostatním uživatelům zablokovat přístup ke stejné cestě. Jedinečný adresář pro každý kontext uživatele zajišťuje, aby každý uživatel získal své vlastní umístění úložiště se správnými přístupovými oprávněními.
Pokud chcete přepsat výchozí adresář, měli byste nastavit storageDirectory.
Příklad:
export class OfflineStorageSample {
static async run() {
const { useAzureMonitor } = await import("@azure/monitor-opentelemetry");
const options = {
azureMonitorExporterOptions: {
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR-CONNECTION-STRING>",
storageDirectory: "C:\\\\SomeDirectory",
disableOfflineStorage: false, // set to true to disable
},
};
const monitor = useAzureMonitor(options);
console.log("Azure Monitor initialized (offline storage configured)");
}
}
Chcete-li tuto funkci zakázat, měli byste nastavit disableOfflineStorage = true.
Ve výchozím nastavení Azure Monitor vývozci používají následující cestu:
<tempfile.gettempdir()>/Microsoft-AzureMonitor-<unique-identifier>/opentelemetry-python-<your-instrumentation-key>
Jedná se <unique-identifier> o hodnotu hash vytvořenou z atributů uživatelského prostředí, jako je instrumentační klíč, název procesu, uživatelské jméno a adresář aplikace. Tento identifikátor řeší běžný problém s více uživateli: když první uživatel vytvoří adresář úložiště, oprávnění k souborům (nastavení umask) můžou ostatním uživatelům zablokovat přístup ke stejné cestě. Jedinečný adresář pro každý kontext uživatele zajišťuje, aby každý uživatel získal své vlastní umístění úložiště se správnými přístupovými oprávněními.
Chcete-li přepsat výchozí adresář, měli byste nastavit storage_directory na požadovaný adresář.
Příklad:
...
# 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",
)
...
Chcete-li tuto funkci zakázat, měli byste nastavit disable_offline_storage hodnotu True. Výchozí hodnota je False.
Příklad:
...
# 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,
)
...
Povolení vývozce OTLP
Možná budete chtít povolit Exporter OpenTelemetry Protocol (OTLP) společně s Azure Monitor Exporter, abyste mohli odesílat telemetrii do dvou umístění.
Poznámka:
Vývozce OTLP se zobrazuje pouze pro usnadnění. Microsoft oficiálně nepodporuje exportér OTLP ani žádné komponenty ani zkušenosti třetích stran, které jsou na něm podřízené.
Do projektu nainstalujte balíček OpenTelemetry.Exporter.OpenTelemetryProtocol.
dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol
Přidejte následující fragment kódu. Tento příklad předpokládá, že máte kolektor OpenTelemetry se spuštěným přijímačem OTLP. Podrobnosti najdete v example na GitHub.
// 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();
Do projektu nainstalujte balíček OpenTelemetry.Exporter.OpenTelemetryProtocol.
dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol
Přidejte následující fragment kódu. Tento příklad předpokládá, že máte kolektor OpenTelemetry se spuštěným přijímačem OTLP. Podrobnosti najdete v example na GitHub.
// 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()
.Build();
// 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()
.Build();
Agent Java Application Insights nepodporuje OTLP.
Další informace o podporovaných konfiguracích najdete v Java doplňkové dokumentaci.
Nemůžete povolit exportér openTelemetry Protocol (OTLP) společně s exportérem Azure Monitor odesílat telemetrii do dvou umístění.
Nainstalujte si v projektu exportér tras kolektoru OpenTelemetry a další balíčky OpenTelemetry.
npm install @opentelemetry/api
npm install @opentelemetry/exporter-trace-otlp-http
npm install @opentelemetry/sdk-trace-base
npm install @opentelemetry/sdk-trace-node
Přidejte následující fragment kódu. Tento příklad předpokládá, že máte kolektor OpenTelemetry se spuštěným přijímačem OTLP. Podrobnosti najdete v example na GitHub.
export class OtlpExporterSample {
static async run() {
const { useAzureMonitor } = await import("@azure/monitor-opentelemetry");
const { BatchSpanProcessor } = await import("@opentelemetry/sdk-trace-base");
const { OTLPTraceExporter } = await import("@opentelemetry/exporter-trace-otlp-http");
// Create an OTLP trace exporter (set 'url' if your collector isn't on the default endpoint).
const otlpExporter = new OTLPTraceExporter({
// url: "http://localhost:4318/v1/traces",
});
// Configure Azure Monitor and add the OTLP exporter as an additional span processor.
const options = {
azureMonitorExporterOptions: {
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR-CONNECTION-STRING>",
},
spanProcessors: [new BatchSpanProcessor(otlpExporter)],
};
const monitor = useAzureMonitor(options);
console.log("Azure Monitor initialized (OTLP exporter added)");
}
}
Nainstalujte balíček opentelemetry-export-otlp.
Přidejte následující fragment kódu. Tento příklad předpokládá, že máte kolektor OpenTelemetry se spuštěným přijímačem OTLP. Podrobnosti najdete v tomto README.
# 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!")
Konfigurace OpenTelemetry
Při použití distros Azure Monitor OpenTelemetry můžete přistupovat k následujícím konfiguracím OpenTelemetry prostřednictvím proměnných prostředí.
| Proměnná prostředí |
Popis |
APPLICATIONINSIGHTS_CONNECTION_STRING |
Nastavte tuto proměnnou na připojovací řetězec prostředku Application Insights. |
APPLICATIONINSIGHTS_STATSBEAT_DISABLED |
Nastavte tuto proměnnou na true pro vypnutí interního shromažďování metrik. |
OTEL_RESOURCE_ATTRIBUTES |
Páry klíčů a hodnot, které se použijí jako atributy prostředků. Další informace o atributech prostředků najdete ve specifikaci Resource SDK. |
OTEL_SERVICE_NAME |
Nastaví hodnotu atributu service.name prostředku. Pokud service.name je také uveden v OTEL_RESOURCE_ATTRIBUTES, OTEL_SERVICE_NAME má přednost. |
| Proměnná prostředí |
Popis |
APPLICATIONINSIGHTS_CONNECTION_STRING |
Nastavte tuto proměnnou na připojovací řetězec prostředku Application Insights. |
APPLICATIONINSIGHTS_STATSBEAT_DISABLED |
Nastavte tuto proměnnou na true pro vypnutí interního shromažďování metrik. |
OTEL_RESOURCE_ATTRIBUTES |
Páry klíčů a hodnot, které se použijí jako atributy prostředků. Další informace o atributech prostředků najdete ve specifikaci Resource SDK. |
|
OTEL_SERVICE_NAME | Nastaví hodnotu atributu service.name prostředku. Pokud service.name je také uveden v OTEL_RESOURCE_ATTRIBUTES, OTEL_SERVICE_NAME má přednost. |
| Proměnná prostředí |
Popis |
APPLICATIONINSIGHTS_CONNECTION_STRING |
Nastavte tuto proměnnou na připojovací řetězec prostředku Application Insights. |
Pro nativní aplikace Spring Boot jsou k dispozici konfigurace sady OpenTelemetry Java SDK.
Informace o nativních aplikacích Quarkus najdete v dokumentaci Quarkus OpenTelemetry.
Poznámka:
Komunita Quarkus podporuje a udržuje rozšíření Quarkus. Pokud potřebujete pomoc, použijte kanály podpory komunity Quarkus. Microsoft neposkytuje technickou podporu pro tuto integraci.
Další informace o konfiguraci sady OpenTelemetry SDK najdete v dokumentaci k OpenTelemetry.
Redigovat řetězce dotazu adresy URL
Pokud chcete odstranit řetězce dotazů v adresách URL, vypněte sběr řetězců dotazů. Toto nastavení se doporučuje, pokud voláte Azure úložiště pomocí tokenu SAS.
Při použití Azure.Monitor.OpenTelemetry.AspNetCore distribučního balíčku jsou zahrnuty knihovny instrumentace ASP.NET Core a HttpClient.
Balíček distribuce ve výchozím nastavení vypíná redakci řetězce dotazu.
Chcete-li toto chování změnit, nastavte proměnnou prostředí buď na hodnotu true, nebo false.
Instrumentace ASP.NET Core: redakce řetězce dotazu je ve výchozím nastavení zakázána OTEL_DOTNET_EXPERIMENTAL_ASPNETCORE_DISABLE_URL_QUERY_REDACTION. Chcete-li tuto proměnnou prostředí povolit, nastavte ji na falsehodnotu .
Instrumentace klienta HTTP: OTEL_DOTNET_EXPERIMENTAL_HTTPCLIENT_DISABLE_URL_QUERY_REDACTION Redigování řetězce dotazu je standardně zakázáno. Chcete-li tuto proměnnou prostředí povolit, nastavte ji na falsehodnotu .
Při použití Azure.Monitor.OpenTelemetry.Exporter musíte do konfigurace OpenTelemetry ručně zahrnout buď knihovny instrumentace ASP.NET Core, nebo knihovny instrumentace HttpClient.
Tyto knihovny instrumentace mají ve výchozím nastavení povolené skrytí řetězců dotazů.
Chcete-li toto chování změnit, nastavte proměnnou prostředí buď na hodnotu true, nebo false.
Instrumentace ASP.NET Core: Redakce řetězce dotazu je ve výchozím nastavení povolena. Chcete-li zakázat, nastavte tuto proměnnou prostředí na true.
Instrumentace klienta HTTP: OTEL_DOTNET_EXPERIMENTAL_HTTPCLIENT_DISABLE_URL_QUERY_REDACTION Redakce řetězce dotazu je ve výchozím nastavení povolena. Chcete-li zakázat, nastavte tuto proměnnou prostředí na true.
Do konfiguračního applicationinsights.json souboru přidejte následující:
{
"preview": {
"processors": [
{
"type": "attribute",
"actions": [
{
"key": "url.query",
"pattern": "^.*$",
"replace": "REDACTED",
"action": "mask"
}
]
},
{
"type": "attribute",
"actions": [
{
"key": "url.full",
"pattern": "[?].*$",
"replace": "?REDACTED",
"action": "mask"
}
]
}
]
}
}
Komunita OpenTelemetry aktivně pracuje na podpoře redakce.
Když použijete balíček Azure Monitor OpenTelemetry distro, můžete řetězce dotazů odstranit vytvořením a aplikací procesoru span na konfiguraci distribuce.
export class RedactQueryStringsSample {
static async run() {
const { useAzureMonitor } = await import("@azure/monitor-opentelemetry");
const { SEMATTRS_HTTP_ROUTE, SEMATTRS_HTTP_TARGET, SEMATTRS_HTTP_URL } =
await import("@opentelemetry/semantic-conventions");
class RedactQueryStringProcessor {
forceFlush() { return Promise.resolve(); }
onStart() {}
shutdown() { return Promise.resolve(); }
onEnd(span: any) {
const route = String(span.attributes[SEMATTRS_HTTP_ROUTE] ?? "");
const url = String(span.attributes[SEMATTRS_HTTP_URL] ?? "");
const target = String(span.attributes[SEMATTRS_HTTP_TARGET] ?? "");
const strip = (s: string) => {
const i = s.indexOf("?");
return i === -1 ? s : s.substring(0, i);
};
if (route) span.attributes[SEMATTRS_HTTP_ROUTE] = strip(route);
if (url) span.attributes[SEMATTRS_HTTP_URL] = strip(url);
if (target) span.attributes[SEMATTRS_HTTP_TARGET] = strip(target);
}
}
const options = {
azureMonitorExporterOptions: {
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR-CONNECTION-STRING>",
},
spanProcessors: [new RedactQueryStringProcessor()],
};
const monitor = useAzureMonitor(options);
console.log("Azure Monitor initialized (query strings redacted)");
}
}
Komunita OpenTelemetry aktivně pracuje na podpoře redakce.
Interval exportu metriky
Interval exportu metrik můžete nakonfigurovat pomocí proměnné prostředí OTEL_METRIC_EXPORT_INTERVAL.
OTEL_METRIC_EXPORT_INTERVAL=60000
Výchozí hodnota je 60000 milisekundy (60 sekund). Toto nastavení určuje, jak často sada OpenTelemetry SDK exportuje metriky.
Návod
Azure Monitor Metriky a Azure Monitor Pracovní prostor ingestují vlastní metriky v pevném 60sekundovém intervalu. Metriky odeslané častěji se ukládají do vyrovnávací paměti a zpracovávají se jednou za 60 sekund. Log Analytics zaznamenává metriky v intervalu, v jakém se odesílají, což může zvýšit náklady v kratších intervalech a zpozdit viditelnost u delších.
Referenční informace najdete v následujících specifikacích OpenTelemetry:
Řešení potíží, zpětná vazba a podpora
Návod
Následující části jsou k dispozici ve všech článcích o distribuci OpenTelemetry.
Troubleshooting
Zpětná vazba k OpenTelemetry
Poskytnutí zpětné vazby:
Podpora
Vyberte kartu pro jazyk podle vašeho výběru a objevte možnosti podpory.
- V případě problémů s podporou Azure otevřete podpora Azure ticket.
- Nápovědu k řešení potíží najdete v krocích pro řešení potíží.
- V případě problémů s OpenTelemetry kontaktujte přímo komunitu OpenTelemetry.
- Seznam otevřených problémů souvisejících s automatickým příkazem Azure Monitor pro Javu najdete na stránce GitHub Issues Page.
- V případě problémů s podporou Azure otevřete podpora Azure ticket.
- V případě problémů s OpenTelemetry kontaktujte přímo komunitu OpenTelemetry.
- Seznam otevřených problémů s nativními aplikacemi Spring Boot najdete na stránce GitHub Problémy.
- Seznam otevřených problémů s nativními aplikacemi Quarkus najdete na stránce GitHub Problémy.
Poznámka:
Komunita Quarkus podporuje a udržuje rozšíření Quarkus. Pokud potřebujete pomoc, použijte kanály podpory komunity Quarkus. Microsoft neposkytuje technickou podporu pro tuto integraci.
Další kroky