Skip to content

Commit fab6445

Browse files
Merge pull request #1673 from splunk/repo-sync
Pulling refs/heads/main into main
2 parents b27e540 + 188db21 commit fab6445

File tree

7 files changed

+33
-86
lines changed

7 files changed

+33
-86
lines changed

_includes/requirements/dotnet.rst

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@ The Splunk Distribution of OpenTelemetry .NET supports the following .NET versio
22

33
- Instrumentation for traces and metrics:
44

5+
- .NET 9.0 (End of Support: May 12, 2026)
56
- .NET 8.0 (End of Support: November 10, 2026)
6-
- .NET 6.0 (End of Support: November 12, 2024)
77
- .NET Framework 4.7 and higher
88
- .NET Framework 4.6.2 (End of Support: January 12, 2027)
99

1010
- AlwaysOn Profiling:
1111

12+
- .NET 9.0 (End of Support: May 12, 2026)
1213
- .NET 8.0 (End of Support: November 10, 2026)
13-
- .NET 6.0 (End of Support: November 12, 2024)
1414

1515
.. note:: .NET Framework is not supported for AlwaysOn Profiling.
1616

17-
.. note:: .NET 7 reached End of Life on May 14, 2024. Best effort support is provided for the last version only, 7.0.19, which was tested using Splunk Distribution of OpenTelemetry .NET version 1.5.0.
17+
.. caution::
18+
19+
The Splunk Distribution of OpenTelemetry .NET version 1.9.0 is not compatible with .NET 6 or .NET 7 since both have reached End of Life. If you want to continue instrumenting .NET 6 or .NET 7 services use the Splunk Distribution of OpenTelemetry .NET version 1.8.0 or lower.
20+
Best effort support for Splunk Distribution of OpenTelemetry .NET is provided up to November 12, 2025 only for the last versions of .NET 6 (version 6.0.36) and .NET 7 (version 7.0.20).
1821

1922
The distribution supports the following architectures:
2023

apm/profiling/get-data-in-profiling.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ To activate AlwaysOn Profiling, follow the steps for the appropriate programming
187187

188188
:strong:`Requirements`
189189

190-
AlwaysOn Profiling requires .NET 6.0 or higher.
190+
AlwaysOn Profiling requires .NET 8.0 or higher.
191191

192192
.. note:: .NET Framework is not supported.
193193

gdi/get-data-in/application/otel-dotnet/configuration/advanced-dotnet-configuration.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ The following settings control the AlwaysOn Profiling feature for the .NET instr
7171

7272
<div class="instrumentation" section="settings" group="category" filter="profiling" url="https://raw.githubusercontent.com/splunk/o11y-gdi-metadata/main/apm/splunk-otel-dotnet/metadata.yaml" data-renaming='{"keys": "Identifier", "description": "Description", "instrumented_components": "Components", "signals": "Signals", "env": "Environment variable", "default": "Default", "type": "Type"}'></div>
7373

74-
.. note:: AlwaysOn Profiling for .NET is compatible with .NET 6.0 and higher. For more information on AlwaysOn Profiling, see :ref:`profiling-intro`.
74+
.. note:: AlwaysOn Profiling for .NET is compatible with .NET 8.0 and higher. For more information on AlwaysOn Profiling, see :ref:`profiling-intro`.
7575

7676
.. _dotnet-otel-trace-propagation-settings:
7777

gdi/get-data-in/application/otel-dotnet/instrumentation/connect-traces-logs.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Check compatibility and requirements
5050

5151
.. note:: Automatic log to trace correlation only works for .NET applications. For .NET Framework use manual correlation. See :ref:`manual-trace-logs-correlation-otel`.
5252

53-
``Microsoft.Extensions.Logging`` version ``8.0.0`` and higher are supported.
53+
``Microsoft.Extensions.Logging`` version ``9.0.0`` and higher are supported.
5454

5555
.. _dotnet-otel-enable-log-correlation:
5656

gdi/get-data-in/application/otel-dotnet/troubleshooting/common-dotnet-troubleshooting.rst

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,22 @@ To find your runtime identifier, follow these steps:
7979
Traces don't appear in Splunk Observability Cloud
8080
==================================================================
8181

82-
If traces from your instrumented application or service are not available in Splunk Observability Cloud, verify the OpenTelemetry Collector configuration:
82+
If traces from your instrumented application or service are not available in Splunk Observability Cloud, check the following:
83+
84+
Verify the supported .NET versions
85+
----------------------------------------------------------------
86+
87+
Make sure that your application targets :ref:`the supported versions of .NET <dotnet-requirements>`.
88+
89+
If the .NET version you're using is not supported, your log entries might be similar to the following:
90+
91+
.. code-block:: bash
92+
93+
[Information] Rule Engine: Error in StartupHook initialization: 6.0.36 is not supported
94+
[Error] Rule 'Minimum Supported Framework Version Validator' failed: Verifies that the application is running on a supported version of the .NET runtime.
95+
96+
Verify the OpenTelemetry Collector configuration
97+
----------------------------------------------------------------
8398

8499
#. Make sure that ``OTEL_EXPORTER_OTLP_ENDPOINT`` points to the correct OpenTelemetry Collector instance host.
85100
#. Check that your collector instance is configured and running. See :ref:`otel-splunk-collector-tshoot`.
@@ -152,7 +167,7 @@ If AlwaysOn Profiling is :ref:`not working as intended <profiling-intro>`, check
152167
Unsupported .NET version
153168
-----------------------------------------------
154169

155-
To use AlwaysOn Profiling, upgrade your .NET version to .NET 6.0 or higher.
170+
To use AlwaysOn Profiling, upgrade your .NET version to 8.0 or higher.
156171

157172
None of the .NET Framework versions is supported.
158173

gdi/get-data-in/serverless/azure/instrument-azure-functions-dotnet.rst

Lines changed: 0 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -65,19 +65,6 @@ Add the following libraries using NuGet in Visual Studio:
6565
- :new-page:`OpenTelemetry.Instrumentation.Http <https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Http>`
6666
- :new-page:`OpenTelemetry.ResourceDetectors.Azure <https://www.nuget.org/packages/OpenTelemetry.ResourceDetectors.Azure>`
6767

68-
.. tab:: .NET 6 In-process function
69-
70-
#. Activate the :strong:`Include prerelease` setting.
71-
#. Install the specified version of the following libraries:
72-
73-
- :new-page:`OpenTelemetry version 1.3.2 <https://www.nuget.org/packages/OpenTelemetry/1.3.2>`
74-
- :new-page:`OpenTelemetry.Exporter.OpenTelemetryProtocol version 1.3.2 <https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.3.2>`
75-
- :new-page:`OpenTelemetry.Instrumentation.Http version 1.0.0-rc9.4 <https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Http/1.0.0-rc9.4>`
76-
- :new-page:`OpenTelemetry.Instrumentation.AspNetCore version 1.0.0-rc9.4 <https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNetCore/1.0.0-rc9.4>`
77-
- :new-page:`Microsoft.Azure.Functions.Extensions version 1.1.0 <https://www.nuget.org/packages/Microsoft.Azure.Functions.Extensions/1.1.0>`
78-
79-
.. note:: Due to runtime dependencies, only the indicated versions are guaranteed to work when instrumenting in-process functions.
80-
8168
.. tab:: .NET 8 In-process function
8269

8370
#. Activate the :strong:`Include prerelease` setting.
@@ -161,69 +148,6 @@ After adding the dependencies, initialize OpenTelemetry in your function.
161148
162149
.. note:: When instrumenting isolated worker process functions, you can encapsulate startup initialization and parameters into other functions.
163150

164-
.. tab:: .NET 6 In-process function
165-
166-
Define a startup function and decorate the assembly with it. The startup function uses the Azure.Functions.Extensions package to collect useful metadata.
167-
168-
.. code-block:: csharp
169-
170-
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
171-
using Microsoft.Extensions.DependencyInjection;
172-
using OpenTelemetry;
173-
using OpenTelemetry.Exporter;
174-
using OpenTelemetry.Resources;
175-
using OpenTelemetry.Trace;
176-
using System;
177-
using System.Collections.Generic;
178-
179-
// Decorate assembly with startup function
180-
[assembly: FunctionsStartup(typeof(OtelManualExample.Startup))]
181-
182-
namespace OtelManualExample
183-
{
184-
public class Startup : FunctionsStartup
185-
{
186-
public override void Configure(IFunctionsHostBuilder builder)
187-
{
188-
// Get environment variables from function configuration
189-
// You need a valid Splunk Observability Cloud access token and realm
190-
var serviceName = Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME") ?? "Unknown";
191-
var accessToken = Environment.GetEnvironmentVariable("SPLUNK_ACCESS_TOKEN")?.Trim();
192-
var realm = Environment.GetEnvironmentVariable("SPLUNK_REALM")?.Trim();
193-
194-
ArgumentNullException.ThrowIfNull(accessToken, "SPLUNK_ACCESS_TOKEN");
195-
ArgumentNullException.ThrowIfNull(realm, "SPLUNK_REALM");
196-
197-
var tp = Sdk.CreateTracerProviderBuilder()
198-
// Use Add[instrumentation-name]Instrumentation to instrument missing services
199-
// Use Nuget to find different instrumentation libraries
200-
.AddHttpClientInstrumentation(opts =>
201-
// This filter prevents background (parent-less) http client activity
202-
opts.Filter = req => Activity.Current?.Parent != null)
203-
.AddAspNetCoreInstrumentation()
204-
// Use AddSource to add your custom DiagnosticSource source names
205-
//.AddSource("My.Source.Name")
206-
.SetSampler(new AlwaysOnSampler())
207-
// Add resource attributes to all spans
208-
.SetResourceBuilder(
209-
ResourceBuilder.CreateDefault()
210-
.AddService(serviceName: serviceName, serviceVersion: "1.0.0")
211-
.AddAttributes(new Dictionary<string, object>() {
212-
{ "faas.instance", Environment.GetEnvironmentVariable("WEBSITE_INSTANCE_ID") }
213-
}))
214-
.AddOtlpExporter(opts =>
215-
{
216-
opts.Endpoint = new Uri($"https://ingest.{realm}.signalfx.com/v2/trace/otlp");
217-
opts.Protocol = OtlpExportProtocol.HttpProtobuf;
218-
opts.Headers = $"X-SF-TOKEN={accessToken}";
219-
})
220-
.Build();
221-
222-
builder.Services.AddSingleton(tp);
223-
}
224-
}
225-
}
226-
227151
.. tab:: .NET 8 In-process function
228152

229153
Define a startup function and decorate the assembly with it. The startup function uses the Azure.Functions.Extensions package to collect useful metadata.

gdi/opentelemetry/automatic-discovery/k8s/k8s-third-party.rst

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ You can use automatic discovery to find third-party applications (such as databa
1313

1414
Update the Collector to version 0.94.0 and higher to activate automatic service discovery.
1515

16-
If you're using the Collector version 0.109.0 or higher, log in to Splunk Observability Cloud and go to the :guilabel:`Discovered services` tab in the :guilabel:`Data Management` menu to see which of your services and third-party applications the Collector has detected and can monitor automatically.
16+
If you're using the Collector version 0.109.0 or higher, log in to Splunk Observability Cloud and go to the :guilabel:`Discovered services` tab in the :guilabel:`Data Management` menu to see which of your services and third-party applications the Collector has detected and can monitor automatically. See :ref:`discovery-mode-k8s` for more details.
1717

1818
How automatic discovery works
1919
================================================
@@ -31,7 +31,9 @@ When running in Kubernetes, discovery mode tests bundled metric receiver configu
3131
Deploy the Collector with automatic discovery
3232
=================================================
3333

34-
You can configure the DaemonSet from the Splunk Distribution of OpenTelemetry Collector for Kubernetes to run in discovery mode. Edit the properties to add required credentials or service-specific information.
34+
You can configure the DaemonSet from the Splunk Distribution of the OpenTelemetry Collector for Kubernetes to run in discovery mode. Edit the properties to add required credentials or service-specific information.
35+
36+
.. note:: If you're using the Collector version 0.109.0 or higher, activate auto-discovery in the UI using ``featureGates: splunk.continuousDiscovery``.
3537

3638
The following example shows how to activate discovery mode in the Helm chart and adds authentication properties for PostgreSQL service discovery:
3739

@@ -56,6 +58,8 @@ The following example shows how to activate discovery mode in the Helm chart and
5658
password: '${env:POSTGRES_PASSWORD}'
5759
tls:
5860
insecure: true
61+
# Activates auto discovery in UI. Only available for the Collector version 0.109.0 or higher
62+
featureGates: splunk.continuousDiscovery
5963
6064
# ...
6165
@@ -71,6 +75,7 @@ The following example shows how to activate discovery mode in the Helm chart and
7175
secretKeyRef:
7276
name: postgres-monitoring
7377
key: password
78+
7479
7580
To check discovery progress and statement evaluations, see the agent startup logs or use kubectl. For example:
7681

0 commit comments

Comments
 (0)