Skip to content

Commit

Permalink
Compatibility matrix - profiling and instrumentation data (#468)
Browse files Browse the repository at this point in the history
  • Loading branch information
Kielek authored May 6, 2024
1 parent b5384b2 commit 6e09689
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
2 changes: 1 addition & 1 deletion tools/MatrixHelper/InstrumentationData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public static Instrumentation[] GetInstrumentations()
new("QUARTZ", new InstrumentedComponent("Quartz", "3.4.0 and higher"), "Not supported on .NET Framework 4.7.1 and lower", "beta", "community", new Dependency("QuartzNET Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Quartz", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Quartz", "1.0.0-beta.2", "beta"), new SignalsList[] { new TracesList() }),
new(new[] { "SQLCLIENT" }, new[] { new InstrumentedComponent("Microsoft.Data.SqlClient", "v3.* is not supported on .NET Framework"), new InstrumentedComponent("System.Data.SqlClient", "4.8.5 and higher"), new InstrumentedComponent("System.Data", "Shipped with .NET Framework") }, null, "beta", "community", new Dependency[] { new Dependency("SqlClient instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.SqlClient", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.SqlClient", "1.8.0-beta.1", "beta") }, new SignalsList[] { new TracesList() }, new Setting[] { new("OTEL_DOTNET_AUTO_SQLCLIENT_SET_DBSTATEMENT_FOR_TEXT", "Whether the SQL Client instrumentation can pass SQL statements through the `db.statement` attribute. Queries might contain sensitive information. If set to `false`, `db.statement` is recorded only for executing stored procedures. Not supported on .NET Framework for System.Data.SqlClient.", "false", "boolean", SettingsData.InstrumentationCategory) }),
new("STACKEXCHANGEREDIS", new InstrumentedComponent("StackExchange.Redis", "2.0.405 to 3.0.0"), "Not supported on .NET Framework", "beta", "community", new Dependency("StackExchange.Redis Instrumentation for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.StackExchangeRedis", "1.0.0-rc9.14", "beta"), new SignalsList[] { new TracesList() }),
new(new[] { "WCFCLIENT", "WCFSERVICE" }, new[] { new InstrumentedComponent("System.ServiceModel", "4.7.0 and higher of `System.ServiceModel.Primitives`") }, "Service side not supported on .NET. `WCFCLIENT for client side instrumentation and `WCFSERVICE` for service side instrumentation", "beta", "community", new[] { new Dependency("WCF Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Wcf", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Wcf", "1.0.0-rc.16", "beta") }, new SignalsList[] { new TracesList() }, Array.Empty<Setting>()),
new(new[] { "WCFCLIENT", "WCFSERVICE" }, new[] { new InstrumentedComponent("System.ServiceModel", "4.7.0 and higher of `System.ServiceModel.Primitives`") }, "Service side not supported on .NET. `WCFCLIENT` for client side instrumentation and `WCFSERVICE` for service side instrumentation", "beta", "community", new[] { new Dependency("WCF Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Wcf", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Wcf", "1.0.0-rc.16", "beta") }, new SignalsList[] { new TracesList() }, Array.Empty<Setting>()),

new("NETRUNTIME", new InstrumentedComponent(".NET runtime", null), null, "beta", "community", new Dependency("Runtime Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Runtime", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Runtime", "1.8.0", "stable"), new SignalsList[] { new MetricList(netRuntimeMetrics) }),
new("PROCESS", new InstrumentedComponent("Process", null), null, "beta", "community", new Dependency("Process Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Process", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Process", "0.5.0-beta.5", "beta"), new SignalsList[] { new MetricList(new MetricData("process.memory.usage", upDownCounter, "The amount of physical memory allocated for this process."), new("process.memory.virtual", upDownCounter, "The amount of committed virtual memory for this process."), new MetricData("process.cpu.time", counter, "Total CPU seconds broken down by different states, such as user and system."), new("process.cpu.count", upDownCounter, "Total CPU seconds broken down by different states, such as user and system."), new("process.threads", upDownCounter, "Process threads count.")) }),
Expand Down
16 changes: 15 additions & 1 deletion tools/MatrixHelper/SettingsData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ internal static class SettingsData
private const string SamplersCategory = "sampler";
private const string ResourceDetectorCategory = "resource detector";
private const string DiagnosticCategory = "diagnostic logging";
private const string ProfilingCategory = "profiling";

public static Setting[] GetSettings()
{
Expand All @@ -47,6 +48,12 @@ public static Setting[] GetSettings()
new("SPLUNK_REALM", "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.", string.Empty, "string", ExporterCategory),
new("SPLUNK_ACCESS_TOKEN", "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.", string.Empty, "string", ExporterCategory),

// profiling
new("SPLUNK_PROFILER_ENABLED", "Activates AlwaysOn Profiling.", "false", "boolean", ProfilingCategory),
new("SPLUNK_PROFILER_MEMORY_ENABLED", "Activates memory profiling.", "false", "boolean", ProfilingCategory),
new("SPLUNK_PROFILER_LOGS_ENDPOINT", "The collector endpoint for profiler logs.", "http://localhost:4318/v1/logs", "string", ProfilingCategory),
new("SPLUNK_PROFILER_CALL_STACK_INTERVAL", "Frequency with which call stacks are sampled, in milliseconds.", "10000", "int", ProfilingCategory),

// trace propagation
new("OTEL_PROPAGATORS", "Comma-separated list of propagators for the tracer. The default value is `tracecontext,baggage`. Supported values are `b3multi`, `b3`, `tracecontext`, and `baggage`.", "tracecontext,baggage", "string", TracePropagationCategory),

Expand All @@ -68,14 +75,21 @@ public static Setting[] GetSettings()
new("OTEL_SPAN_LINK_COUNT_LIMIT", "Maximum number of links per span. Default value is `1000`.", "1000", "int", InstrumentationCategory),
new("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT", "Maximum length of strings for attribute values. Values larger than the limit are truncated. Default value is `1200`. Empty values are treated as infinity.", "1200", "int", InstrumentationCategory),
new("OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_LEGACY_SOURCES", "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.", string.Empty, "string", InstrumentationCategory),
new("OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED", "Activates or deactivates all instrumentations. Can’t be set using the web.config or app.config files.", "true", "boolean", InstrumentationCategory),
new("OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED", "Activates or deactivates all trace instrumentations. Overrides `OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED`. Inherits the value of the `OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED` environment variable. Can’t be set using the web.config or app.config files.", string.Empty, "boolean", InstrumentationCategory),
new("OTEL_DOTNET_AUTO_TRACES_{INSTRUMENTATION}_INSTRUMENTATION_ENABLED", "Activates or deactivates a specific trace instrumentation, where `{INSTRUMENTATION}` is the case-sensitive name of the instrumentation. Overrides `OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED`. Inherits the value of the `OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED` environment variable. Can’t be set using the web.config or app.config files. See Supported libraries for a complete list of supported instrumentations and their names.", string.Empty, "boolean", InstrumentationCategory),
new("OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED", "Activates or deactivates all metric instrumentations. Overrides `OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED`. Inherits the value of the `OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED` environment variable. Can’t be set using the web.config or app.config files.", string.Empty, "boolean", InstrumentationCategory),
new("OTEL_DOTNET_AUTO_METRICS_{INSTRUMENTATION}_INSTRUMENTATION_ENABLED", "Activates or deactivates a specific metric instrumentation, where `{INSTRUMENTATION}` is the case-sensitive name of the instrumentation. Overrides `OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED`. Inherits the value of the `OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED` environment variable. Can’t be set using the web.config or app.config files. See Supported libraries for a complete list of supported instrumentations and their names.", string.Empty, "boolean", InstrumentationCategory),
new("OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED", "Activates or deactivates all log instrumentations. Overrides `OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED`. Inherits the value of the `OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED` environment variable. Can’t be set using the web.config or app.config files.", string.Empty, "boolean", InstrumentationCategory),
new("OTEL_DOTNET_AUTO_LOGS_{INSTRUMENTATION}_INSTRUMENTATION_ENABLED", "Activates or deactivates a specific log instrumentation, where `{INSTRUMENTATION}` is the case-sensitive name of the instrumentation. Overrides `OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED`. Inherits the value of the `OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED` environment variable. Can’t be set using the web.config or app.config files. See Supported libraries for a complete list of supported instrumentations and their names.\n\n", string.Empty, "boolean", InstrumentationCategory),

// diagnostic logging
new("OTEL_LOG_LEVEL", "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.", "info", "string", DiagnosticCategory),
new("OTEL_DOTNET_AUTO_LOG_DIRECTORY", "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.", string.Empty, "string", DiagnosticCategory),
new("OTEL_DOTNET_AUTO_TRACES_CONSOLE_EXPORTER_ENABLED", "Whether the traces console exporter is activated. The default value is `false`.", "false", "boolean", DiagnosticCategory),
new("OTEL_DOTNET_AUTO_METRICS_CONSOLE_EXPORTER_ENABLED", "Whether the metrics console exporter is activated. The default value is `false`.", "false", "boolean", DiagnosticCategory),
new("OTEL_DOTNET_AUTO_LOGS_CONSOLE_EXPORTER_ENABLED", "Whether the logs console exporter is activated. The default value is `false`.The default value is `false`.", "false", "boolean", DiagnosticCategory),
new("OTEL_DOTNET_AUTO_LOGS_INCLUDE_FORMATTED_MESSAGE", "Whether the log state have to be formatted. The default value is `false`.", "false", "boolean", DiagnosticCategory),
new("OTEL_DOTNET_AUTO_LOGS_INCLUDE_FORMATTED_MESSAGE", "Whether the log state have to be formatted. The default value is `false`.", "false", "boolean", DiagnosticCategory)
};

return settings;
Expand Down

0 comments on commit 6e09689

Please sign in to comment.