Open Kielek opened 1 year ago
Sample .NET output:
component: Splunk Distribution of OpenTelemetry .NET
version: 1.0.3-alpha.0.13
dependencies:
- name: OpenTelemetry .NET
source_href: https://github.com/open-telemetry/opentelemetry-dotnet
version: 1.6.0
stability: stable
- name: OpenTelemetry .NET Automatic Instrumentation
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation
version: 1.0.2
stability: stable
settings:
- env: SPLUNK_TRACE_RESPONSE_HEADER_ENABLED
description: Activated by default. Adds server trace information to HTTP response headers. The default value is `true`.
default: 'true'
type: boolean
category: general
- env: OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES
description: "Names of the executable files that you don't want the profiler to instrument. Supports multiple semicolon-separated values, for example: `ReservedProcess.exe;powershell.exe`. Notice that applications launched using dotnet MyApp.dll have process name `dotnet` or `dotnet.exe`. Can't be set using the web.config or app.config files."
default: ''
type: general
category: string
- env: OTEL_DOTNET_AUTO_TRACES_ENABLED
description: Long Traces are collected by default. To deactivate trace collection, set the environment variable to `false`. Data from custom or manual instrumentation is not affected.
default: 'true'
type: boolean
category: general
- env: OTEL_DOTNET_AUTO_METRICS_ENABLED
description: etrics are collected by default. To deactivate metric collection, set the environment variable to `false`. Data from custom or manual instrumentation is not affected.
default: 'true'
type: boolean
category: general
- env: OTEL_DOTNET_AUTO_LOGS_ENABLED
description: Logs are collected by default. To deactivate log collection, set the environment variable to `false`. Data from custom or manual instrumentation is not affected.
default: 'true'
type: boolean
category: general
- env: OTEL_DOTNET_AUTO_OPENTRACING_ENABLED
description: Activates the OpenTracing tracer. The default value is `false`.
default: 'false'
type: boolean
category: general
- env: OTEL_DOTNET_AUTO_NETFX_REDIRECT_ENABLED
description: Activates immediate redirection of the assemblies used by the automatic instrumentation on the .NET Framework. The default values is `true`. Can't be set using the web.config or app.config files.
default: 'true'
type: boolean
category: general
- env: OTEL_DOTNET_AUTO_FLUSH_ON_UNHANDLEDEXCEPTION
description: Controls whether the telemetry data is flushed when an `AppDomain.UnhandledException` event is raised. Set to `true` when experiencing missing telemetry at the same time of unhandled exceptions.
default: 'false'
type: boolean
category: general
- env: OTEL_DOTNET_AUTO_RULE_ENGINE_ENABLED
description: Activates RuleEngine. The default values is `true`. RuleEngine increases the stability of the instrumentation by validating assemblies for unsupported scenarios.
default: 'true'
type: boolean
category: general
- env: OTEL_DOTNET_AUTO_FAIL_FAST_ENABLED
description: Activate to let the process fail when automatic instrumentation can't be executed. This setting is for debugging purposes, don't use it in production environments. The default value is `false`. Can't be set using the web.config or app.config files.
default: 'false'
type: boolean
category: general
- env: OTEL_EXPORTER_OTLP_ENDPOINT
description: The URL to where traces and metrics are sent. The default value is `http://localhost:4318`. Setting a value overrides the `SPLUNK_REALM` environment variable.
default: ''
type: string
category: exporter
- env: SPLUNK_REALM
description: The name of your organization's realm, for example, `us0`. When you set the realm, telemetry is sent directly to the ingest endpoint of Splunk Observability Cloud, bypassing the Splunk Distribution of OpenTelemetry Collector.
default: ''
type: string
category: exporter
- env: SPLUNK_ACCESS_TOKEN
description: A Splunk authentication token that lets exporters send data directly to Splunk Observability Cloud. Unset by default. Required if you need to send data to the Splunk Observability Cloud ingest endpoint.
default: ''
type: string
category: exporter
- env: OTEL_PROPAGATORS
description: Comma-separated list of propagators for the tracer. The default value is `tracecontext,baggage`. Supported values are `b3multi`, `b3`, `tracecontext`, and `baggage`.
default: 'tracecontext,baggage'
type: string
category: trace propagation
- env: OTEL_TRACES_SAMPLER
description: Sampler to use. The default value is `parentbased_always_on`. Supported values are `always_on`, `always_off`, `traceidratio`, `parentbased_always_on`, `parentbased_always_off`, and `parentbased_traceidratio`.
default: 'parentbased_always_on'
type: string
category: sampler
- env: OTEL_TRACES_SAMPLER_ARG
description: Semicolon-separated list of rules for the `rules` sampler. The default value is `1.0` for `parentbased_always_on`.
default: '1.0'
type: string
category: sampler
- env: OTEL_DOTNET_AUTO_RESOURCE_DETECTOR_ENABLED
description: Activates or deactivates all resource detectors. The default values is `true`.
default: 'true'
type: boolean
category: resource detector
- env: OTEL_DOTNET_AUTO_{DECTECTOR}_RESOURCE_DETECTOR_ENABLED
description: Activates or deactivates a specific resource detector, where `{DETECTOR}` is the uppercase identifier of the resource detector you want to activate. Overrides `OTEL_DOTNET_AUTO_RESOURCE_DETECTOR_ENABLED`.
default: 'depends on `OTEL_DOTNET_AUTO_RESOURCE_DETECTOR_ENABLED`'
type: boolean
category: resource detector
- env: OTEL_SERVICE_NAME
description: Name of the service or application you're instrumenting. Takes precedence over the service name defined in the `OTEL_RESOURCE_ATTRIBUTES` variable.
default: ''
type: string
category: instrumentation
- env: OTEL_RESOURCE_ATTRIBUTES
description: Comma-separated list of resource attributes added to every reported span. For example, `key1=val1,key2=val2`.
default: ''
type: string
category: instrumentation
- env: OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_SOURCES
description: Comma-separated list of additional `System.Diagnostics.ActivitySource` names to be added to the tracer at startup. Use it to capture spans from manual instrumentation.
default: ''
type: string
category: instrumentation
- env: OTEL_DOTNET_AUTO_METRICS_ADDITIONAL_SOURCES
description: Comma-separated list of additional `System.Diagnostics.Metrics.Meter` names to be added to the meter at the startup. Use it to capture custom metrics.
default: ''
type: string
category: instrumentation
- env: OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT
description: Maximum number of attributes per span. Default value is unlimited.
default: ''
type: int
category: instrumentation
- env: OTEL_SPAN_EVENT_COUNT_LIMIT
description: Maximum number of events per span. Default value is unlimited.
default: ''
type: int
category: instrumentation
- env: OTEL_SPAN_LINK_COUNT_LIMIT
description: Maximum number of links per span. Default value is `1000`.
default: '1000'
type: int
category: instrumentation
- env: OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT
description: Maximum length of strings for attribute values. Values larger than the limit are truncated. Default value is `1200`. Empty values are treated as infinity.
default: '1200'
type: int
category: instrumentation
- env: OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_LEGACY_SOURCES
description: Comma-separated list of additional legacy source names to be added to the tracer at the startup. Use it to capture `System.Diagnostics.Activity` objects created without using the `System.Diagnostics.ActivitySource` API.
default: ''
type: string
category: instrumentation
- env: OTEL_LOG_LEVEL
description: Sets the logging level for instrumentation log messages. Possible values are `none`, `error`, `warn`, `info`, and `debug`. The default value is `info`. Can't be set using the web.config or app.config files.
default: 'info'
type: string
category: diagnostic logging
- env: OTEL_DOTNET_AUTO_LOG_DIRECTORY
description: Directory of the .NET tracer logs. The default value is `/var/log/opentelemetry/dotnet` for Linux, and `%ProgramData%\OpenTelemetry .NET AutoInstrumentation\logs` for Windows. Can't be set using the web.config or app.config files.
default: ''
type: string
category: diagnostic logging
- env: OTEL_DOTNET_AUTO_TRACES_CONSOLE_EXPORTER_ENABLED
description: Whether the traces console exporter is activated. The default value is `false`.
default: 'false'
type: boolean
category: diagnostic logging
- env: OTEL_DOTNET_AUTO_METRICS_CONSOLE_EXPORTER_ENABLED
description: Whether the metrics console exporter is activated. The default value is `false`.
default: 'false'
type: boolean
category: diagnostic logging
- env: OTEL_DOTNET_AUTO_LOGS_CONSOLE_EXPORTER_ENABLED
description: Whether the logs console exporter is activated. The default value is `false`.The default value is `false`.
default: 'false'
type: boolean
category: diagnostic logging
- env: OTEL_DOTNET_AUTO_LOGS_INCLUDE_FORMATTED_MESSAGE
description: Whether the log state have to be formatted. The default value is `false`.
default: 'false'
type: boolean
category: diagnostic logging
instrumentations:
- keys:
- ASPNET
instrumented_components:
- name: ASP.NET Framework (.NET Framework)
supported_versions: See general requirements
description: MVC / WebApi (Only integrated pipeline mode supported). Metrics requires trace instrumentation.
stability: beta
support: community
dependencies:
- name: ASP.NET Instrumentation for OpenTelemetry
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet
version: 1.0.0-rc9.9
stability: beta
- name: ASP.NET Telemetry HttpModule for OpenTelemetry
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule
version: 1.0.0-rc9.9
stability: beta
signals:
- traces: &o0 []
- metrics:
- metric_name: http.server.duration
instrument: histogram
description: Duration of the inbound HTTP request, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.
- keys:
- ASPNETCORE
instrumented_components:
- name: ASP.NET Core
supported_versions: See general requirements
description: Metrics automatically activates `Microsoft.AspNetCore.Hosting.HttpRequestIn` spans.
stability: beta
support: community
dependencies:
- name: ASP.NET Core Instrumentation for OpenTelemetry .NET
source_href: https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.AspNetCore
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNetCore
version: 1.5.1-beta.1
stability: beta
signals:
- traces: *o0
- metrics:
- metric_name: http.server.duration
instrument: histogram
description: Duration of the inbound HTTP request, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.
- keys:
- AZURE
instrumented_components:
- name: Azure SDK
supported_versions: '`Azure.` prefixed packages, released after October 1, 2021'
stability: beta
support: third-party
signals:
- traces: *o0
- keys:
- ELASTICSEARCH
instrumented_components:
- name: Elastic.Clients.Elasticsearch
supported_versions: 8.0.0 and higher
stability: beta
support: third-party
signals:
- traces: *o0
- keys:
- ENTITYFRAMEWORKCORE
instrumented_components:
- name: Microsoft.EntityFrameworkCore
supported_versions: 6.0.12 and higher
description: Not supported on .NET Framework
stability: beta
support: community
dependencies:
- name: EntityFrameworkCore Instrumentation for OpenTelemetry .NET
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.EntityFrameworkCore
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.EntityFrameworkCore
version: 1.0.0-beta.7
stability: beta
signals:
- traces: *o0
- keys:
- GRAPHQL
instrumented_components:
- name: GraphQL
supported_versions: 7.5.0 and higher
description: Not supported on .NET Framework
stability: beta
support: third-party
signals:
- traces: *o0
settings:
- env: OTEL_DOTNET_AUTO_GRAPHQL_SET_DOCUMENT
description: Whether the GraphQL instrumentation can pass raw queries as a `graphql.document` attribute. As queries might contain sensitive information, the default value is `false`.
default: 'false'
type: boolean
category: instrumentation
- keys:
- GRPCNETCLIENT
instrumented_components:
- name: Grpc.Net.Client
supported_versions: 2.52.0 to 3.0.0
stability: beta
support: community
dependencies:
- name: Grpc.Net.Client Instrumentation for OpenTelemetry
source_href: https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.GrpcNetClient
version: 1.5.1-beta.1
stability: beta
signals:
- traces: *o0
- keys:
- HTTPCLIENT
instrumented_components:
- name: System.Net.Http.HttpClient
supported_versions: See general requirements
- name: System.Net.HttpWebRequest
supported_versions: See general requirements
stability: beta
support: community
dependencies:
- name: HttpClient and HttpWebRequest instrumentation for OpenTelemetry
source_href: https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Http
version: 1.5.1-beta.1
stability: beta
signals:
- traces: *o0
- metrics:
- metric_name: http.client.duration
instrument: histogram
description: Duration of outbound HTTP requests, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.
- metric_name: http.server.duration
instrument: histogram
description: Duration of the inbound HTTP request, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.
- keys:
- MASSTRANSIT
instrumented_components:
- name: MassTransit
supported_versions: 8.0.0 and higher
description: Not supported on .NET Framework
stability: beta
support: third-party
signals:
- traces: *o0
- keys:
- MONGODB
instrumented_components:
- name: MongoDB.Driver.Core
supported_versions: 2.13.3 to 3.0.0
description: Not supported on .NET Framework
stability: beta
support: third-party
signals:
- traces: *o0
- keys:
- MYSQLCONNECTOR
instrumented_components:
- name: MySqlConnector
supported_versions: 2.0.0 and higher
stability: beta
support: third-party
signals:
- traces: *o0
- keys:
- MYSQLDATA
instrumented_components:
- name: MySql.Data
supported_versions: 8.1.0 and higher
description: Not supported on .NET Framework
stability: beta
support: third-party
signals:
- traces: *o0
- keys:
- NPGSQL
instrumented_components:
- name: Npgsql
supported_versions: 6.0.0 and higher
stability: beta
support: third-party
signals:
- traces: *o0
- keys:
- NSERVICEBUS
instrumented_components:
- name: NServiceBus
supported_versions: 8.0.0 and higher
stability: beta
support: third-party
signals:
- traces: *o0
- metrics:
- metric_name: nservicebus.messaging.successes
instrument: counter
description: Number of messages successfully processed by the endpoint.
- metric_name: nservicebus.messaging.fetches
instrument: counter
description: Number of messages retrieved from the queue by the endpoint.
- metric_name: nservicebus.messaging.failures
instrument: counter
description: Number of messages unsuccessfully processed by the endpoint.
- keys:
- QUARTZ
instrumented_components:
- name: Quartz
supported_versions: 3.4.0 and higher
description: Not supported on .NET Framework 4.7.1 and lower
stability: beta
support: community
dependencies:
- name: QuartzNET Instrumentation for OpenTelemetry .NET
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Quartz
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Quartz
version: 1.0.0-alpha.3
stability: alpha
signals:
- traces: *o0
- keys:
- STACKEXCHANGEREDIS
instrumented_components:
- name: StackExchange.Redis
supported_versions: 2.0.405 to 3.0.0
description: Not supported on .NET Framework
stability: beta
support: community
dependencies:
- name: StackExchange.Redis Instrumentation for OpenTelemetry
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.StackExchangeRedis
version: 1.0.0-rc9.10
stability: beta
signals:
- traces: *o0
- keys:
- WCFCLIENT
- WCFSERVICE
instrumented_components:
- name: System.ServiceModel
supported_versions: 4.7.0 and higher of `System.ServiceModel.Primitives`
description: Service side not supported on .NET. `WCFCLIENT for client side instrumentation and `WCFSERVICE` for service side instrumentation
stability: beta
support: community
dependencies:
- name: WCF Instrumentation for OpenTelemetry .NET
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Wcf
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Wcf
version: 1.0.0-rc.12
stability: beta
signals:
- traces: *o0
- keys:
- NETRUNTIME
instrumented_components:
- name: .NET runtime
stability: beta
support: community
dependencies:
- name: Runtime Instrumentation for OpenTelemetry .NET
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Runtime
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Runtime
version: 1.5.1
stability: stable
signals:
- metrics:
- metric_name: process.runtime.dotnet.gc.collections.count
instrument: counter
description: Number of garbage collections since the process started.
- metric_name: process.runtime.dotnet.gc.heap.size
instrument: updowncounter
description: Heap size, as observed during the last garbage collection. Only available for .NET 6 or higher.
- metric_name: process.runtime.dotnet.gc.heap.fragmentation.size
instrument: updowncounter
description: Heap fragmentation, as observed during the last garbage collection. Only available for .NET 7 or higher.
- metric_name: process.runtime.dotnet.gc.objects.size
instrument: updowncounter
description: Count of bytes currently in use by live objects in the GC heap.
- metric_name: process.runtime.dotnet.gc.allocations.size
instrument: counter
description: Count of bytes allocated on the managed GC heap since the process started. Only available for .NET 6 or higher.
- metric_name: process.runtime.dotnet.gc.committed_memory.size
instrument: updowncounter
description: Amount of committed virtual memory for the managed GC heap, as observed during the last garbage collection. Only available for .NET 6 and higher.
- metric_name: process.runtime.dotnet.gc.duration
instrument: counter
description: The total amount of time paused in GC since the process start. Only available for .NET 7 and higher.
- metric_name: process.runtime.dotnet.monitor.lock_contention.count
instrument: counter
description: Contentions count when trying to acquire a monitor lock since the process started.
- metric_name: process.runtime.dotnet.thread_pool.threads.count
instrument: counter
description: Number of thread pool threads, as observed during the last measurement. Only available for .NET 6 or higher.
- metric_name: process.runtime.dotnet.thread_pool.completed_items.count
instrument: counter
description: Number of work items processed by the thread pool since the process started. Only available for .NET 6 or higher.
- metric_name: process.runtime.dotnet.thread_pool.queue.length
instrument: updowncounter
description: Number of work items currently queued for processing by the thread pool. Only available for .NET 6 or higher.
- metric_name: process.runtime.dotnet.jit.il_compiled.size
instrument: counter
description: Bytes of intermediate language that have been compiled since the process started. Only available for .NET 6 or higher.
- metric_name: process.runtime.dotnet.jit.methods_compiled.count
instrument: counter
description: Number of times the JIT compiler compiled a method since the process started. Only available for .NET 6 or higher.
- metric_name: process.runtime.dotnet.jit.compilation_time
instrument: counter
description: Amount of time the compiler spent compiling methods since the process started. Only available for .NET 6 or higher.
- metric_name: process.runtime.dotnet.timer.count
instrument: updowncounter
description: Number of timer instances currently active. Only available for .NET 6 or higher.
- metric_name: process.runtime.dotnet.assemblies.count
instrument: updowncounter
description: Number of .NET assemblies that are currently loaded.
- metric_name: process.runtime.dotnet.exceptions.count
instrument: counter
description: Count of exceptions thrown in managed code since the observation started.
- keys:
- PROCESS
instrumented_components:
- name: Process
stability: beta
support: community
dependencies:
- name: Process Instrumentation for OpenTelemetry .NET
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Process
package_href: https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Process
version: 0.5.0-beta.3
stability: beta
signals:
- metrics:
- metric_name: process.memory.usage
instrument: updowncounter
description: The amount of physical memory allocated for this process.
- metric_name: process.memory.virtual
instrument: updowncounter
description: The amount of committed virtual memory for this process.
- metric_name: process.cpu.time
instrument: counter
description: Total CPU seconds broken down by different states, such as user and system.
- metric_name: process.cpu.count
instrument: updowncounter
description: Total CPU seconds broken down by different states, such as user and system.
- metric_name: process.threads
instrument: updowncounter
description: Process threads count.
- keys:
- ILOGGER
instrumented_components:
- name: Microsoft.Extensions.Logging
supported_versions: 6.0.0 and higher
description: Not supported on .NET Framework
stability: beta
support: community
signals:
- logs: []
resource_detectors:
- key: AZUREAPPSERVICE
description: Azure App Service detector.
attributes:
- id: azure.app.service.stamp
- id: cloud.platform
- id: cloud.provider
- id: cloud.resource_id
- id: cloud.region
- id: deployment.environment
- id: host.id
- id: service.instance.id
- id: service.name
stability: beta
support: community
dependencies:
- name: Resource Detectors for Azure cloud environments
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.ResourceDetectors.Azure
package_href: https://www.nuget.org/packages/OpenTelemetry.ResourceDetectors.Azure
version: 1.0.0-beta.3
stability: beta
- key: CONTAINER
description: Container detector. For example, Docker or Podman containers.
attributes:
- id: container.id
stability: beta
support: community
dependencies:
- name: Container Resource Detectors
source_href: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.ResourceDetectors.Container
package_href: https://www.nuget.org/packages/OpenTelemetry.ResourceDetectors.Container
version: 1.0.0-beta.4
stability: beta
I don't think this issue is clear enough yet. Why should we be creating this yaml file? I think it's to help automate the documentation around all the ways that a disto might be configured. Is that right? If so, the issue should say that. It looks like it's even more than that though, because it describes metrics and other attributes. Can we split this into small units of work (eg. tackle those different concerns separately)?
The issue is also titled "matrix-schema", which is fine, if the idea is to create a schema. The example docs are also fine, but they don't constitute a schema.
@breedx-splk, the goal of previous tasks was to create something good enough to start working on documentation. The next planned step is to create something similar tor other instrumentation (Java, NodeJS). I think that it can happened without formalizing schema file as it should allow us to find lacks of version proposed in https://github.com/Kielek/splunk-otel-dotnet/pull/1. I suppose that java is similar enough to .NET, but I expect more extensions for Node.js or Go.
Is your feature request related to a problem? Please describe. Each project should create documentation data in yaml file format. It will allow documentation team to generate it with unified way and provide common experience for end users.
Describe the solution you'd like To standardize and validate format structure shcema file is needed.
Describe alternatives you've considered N/A
Additional context Discussions under: https://github.com/Kielek/splunk-otel-dotnet/pull/1 and the PR for .NET https://github.com/signalfx/splunk-otel-dotnet/pull/352 Task should be done when we have more repositories with implementation.