Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
using Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Proxies;
using Datadog.Trace.ClrProfiler.CallTarget;
using Datadog.Trace.DuckTyping;
using Datadog.Trace.Telemetry;
using Datadog.Trace.Telemetry.Metrics;

namespace Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Extensions;

Expand All @@ -30,6 +32,7 @@ public class SpanExtensionsSetUserIntegration
{
internal static CallTargetState OnMethodBegin<TTarget, TSpan>(ref TSpan span, string? email, string? name, string id, bool propagateId, string? sessionId, string? role, string? scope)
{
TelemetryFactory.Metrics.Record(PublicApiUsage.SpanExtensions_SetUser);
if (!string.IsNullOrEmpty(id))
{
// Annoyingly, this takes an ISpan, so we have to do some duckTyping to make it work
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

113 changes: 5 additions & 108 deletions tracer/src/Datadog.Trace/Telemetry/Metrics/PublicApiUsage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,111 +29,29 @@ internal enum PublicApiUsage

[Description("name:spancontextextractor_extract")] SpanContextExtractor_Extract,

[Description("name:spancontextextractor_extractincludingdsm")]
SpanContextExtractor_ExtractIncludingDsm,
[Description("name:spancontextextractor_extractincludingdsm")] SpanContextExtractor_ExtractIncludingDsm,
[Description("name:spancontextextractor_ctor")] SpanContextExtractor_Ctor,

[Description("name:spancontextinjector_injectincludingdsm")]
SpanContextInjector_InjectIncludingDsm,
[Description("name:spancontextinjector_injectincludingdsm")] SpanContextInjector_InjectIncludingDsm,
[Description("name:spancontextinjector_inject")] SpanContextInjector_Inject,
[Description("name:spancontextinjector_ctor")] SpanContextInjector_Ctor,

[Description("name:spanextensions_setuser")] SpanExtensions_SetUser,
[Description("name:spanextensions_settag")] SpanExtensions_SetTag,
[Description("name:spanextensions_settracesamplingpriority")] SpanExtensions_SetTraceSamplingPriority,

[Description("name:tracer_ctor")] Tracer_Ctor,
[Description("name:tracer_ctor_settings")] Tracer_Ctor_Settings,
[Description("name:tracer_instance_set")] Tracer_Instance_Set,
[Description("name:tracer_configure")] Tracer_Configure,
[Description("name:tracer_forceflushasync")] Tracer_ForceFlushAsync,
[Description("name:tracer_startactive")] Tracer_StartActive,
[Description("name:tracer_startactive_settings")] Tracer_StartActive_Settings,
[Description("name:itracer_startactive")] ITracer_StartActive,
[Description("name:itracer_startactive_settings")] ITracer_StartActive_Settings,

// These are problematic, as we use them _everywhere_ so means a lot of code changes
// [Description("name:tracer_instance_get")] Tracer_Instance_Get,
// [Description("name:tracer_activescope_get")] Tracer_ActiveScope_Get,
// [Description("name:tracer_defaultservicename_get")] Tracer_DefaultServiceName_Get,
// [Description("name:tracer_settings_get")] Tracer_Settings_Get,

// These are problematic as we need to use them internally in some cases (version conflict)
// [Description("name:iscope_span")] IScope_Span,
// [Description("name:iscope_close")] IScope_Close,
// [Description("name:ispan_operationname_get")] ISpan_OperationName_Get,
// [Description("name:ispan_operationname_set")] ISpan_OperationName_Set,
// [Description("name:ispan_resourcename_get")] ISpan_ResourceName_Get,
// [Description("name:ispan_resourcename_set")] ISpan_ResourceName_Set,
// [Description("name:ispan_type_get")] ISpan_Type_Get,
// [Description("name:ispan_type_set")] ISpan_Type_Set,
// [Description("name:ispan_error_get")] ISpan_Error_Get,
// [Description("name:ispan_error_set")] ISpan_Error_Set,
// [Description("name:ispan_servicename_get")] ISpan_ServiceName_Get,
// [Description("name:ispan_servicename_set")] ISpan_ServiceName_Set,
// [Description("name:ispan_traceid_get")] ISpan_TraceId_Get,
// [Description("name:ispan_spanid_get")] ISpan_SpanId_Get,
// [Description("name:ispan_context_get")] ISpan_Context_Get,
// [Description("name:ispan_settag")] ISpan_SetTag,
// [Description("name:ispan_finish")] ISpan_Finish,
// [Description("name:ispan_finish_datetimeoffset")] ISpan_Finish_DateTimeOffset,
// [Description("name:ispan_setexception")] ISpan_SetException,
// [Description("name:ispan_gettag")] ISpan_GetTag,

[Description("name:correlationidentifier_env_get")]Correlation_Identifier_Env_Get,
[Description("name:correlationidentifier_service_get")]Correlation_Identifier_Service_Get,
[Description("name:correlationidentifier_spanid_get")]Correlation_Identifier_SpanId_Get,
[Description("name:correlationidentifier_traceid_get")]Correlation_Identifier_TraceId_Get,
[Description("name:correlationidentifier_version_get")]Correlation_Identifier_Version_Get,

[Description("name:spancontext_ctor")] SpanContext_Ctor,
[Description("name:spancontext_parent_get")] SpanContext_Parent_Get,
[Description("name:spancontext_parentid_get")] SpanContext_ParentId_Get,
[Description("name:spancontext_servicename_get")] SpanContext_ServiceName_Get,
[Description("name:spancontext_servicename_set")] SpanContext_ServiceName_Set,
// These are problematic as they're used in a _lot_ of places
// [Description("name:spancontext_spanid_get")] SpanContext_SpanId_Get,
// [Description("name:spancontext_traceid_get")] SpanContext_TraceId_Get,

[Description("name:exportersettings_ctor")] ExporterSettings_Ctor,
[Description("name:exportersettings_ctor_source")] ExporterSettings_Ctor_Source,

[Description("name:exportersettings_agenturi_get")] ExporterSettings_AgentUri_Get,
[Description("name:exportersettings_agenturi_set")] ExporterSettings_AgentUri_Set,
[Description("name:exportersettings_dogstatsdport_get")] ExporterSettings_DogStatsdPort_Get,
[Description("name:exportersettings_dogstatsdport_set")] ExporterSettings_DogStatsdPort_Set,
[Description("name:exportersettings_metricspipename_get")] ExporterSettings_MetricsPipeName_Get,
[Description("name:exportersettings_metricspipename_set")] ExporterSettings_MetricsPipeName_Set,
[Description("name:exportersettings_metricsunixdomainsocketpath_get")] ExporterSettings_MetricsUnixDomainSocketPath_Get,
[Description("name:exportersettings_metricsunixdomainsocketpath_set")] ExporterSettings_MetricsUnixDomainSocketPath_Set,
[Description("name:exportersettings_partialflushenabled_get")] ExporterSettings_PartialFlushEnabled_Get,
[Description("name:exportersettings_partialflushenabled_set")] ExporterSettings_PartialFlushEnabled_Set,
[Description("name:exportersettings_partialflushminspans_get")] ExporterSettings_PartialFlushMinSpans_Get,
[Description("name:exportersettings_partialflushminspans_set")] ExporterSettings_PartialFlushMinSpans_Set,
[Description("name:exportersettings_tracespipename_get")] ExporterSettings_TracesPipeName_Get,
[Description("name:exportersettings_tracespipename_set")] ExporterSettings_TracesPipeName_Set,
[Description("name:exportersettings_tracespipetimeoutms_get")] ExporterSettings_TracesPipeTimeoutMs_Get,
[Description("name:exportersettings_tracespipetimeoutms_set")] ExporterSettings_TracesPipeTimeoutMs_Set,
[Description("name:exportersettings_tracesunixdomainsocketpath_get")] ExporterSettings_TracesUnixDomainSocketPath_Get,
[Description("name:exportersettings_tracesunixdomainsocketpath_set")] ExporterSettings_TracesUnixDomainSocketPath_Set,

[Description("name:globalsettings_debugenabled_get")] GlobalSettings_DebugEnabled_Get,
[Description("name:globalsettings_fromdefaultsources")] GlobalSettings_FromDefaultSources,
[Description("name:globalsettings_reload")] GlobalSettings_Reload,

[Description("name:globalsettings_setdebugenabled")] GlobalSettings_SetDebugEnabled,

[Description("name:immutableexportersettings_ctor_settings")] ImmutableExporterSettings_Ctor_Settings,
[Description("name:immutableexportersettings_ctor_source")] ImmutableExporterSettings_Ctor_Source,
[Description("name:immutableexportersettings_agenturi_get")] ImmutableExporterSettings_AgentUri_Get,
[Description("name:immutableexportersettings_dogstatsdport_get")] ImmutableExporterSettings_DogStatsdPort_Get,
[Description("name:immutableexportersettings_metricspipename_get")] ImmutableExporterSettings_MetricsPipeName_Get,
[Description("name:immutableexportersettings_metricsunixdomainsocketpath_get")] ImmutableExporterSettings_MetricsUnixDomainSocketPath_Get,
[Description("name:immutableexportersettings_partialflushenabled_get")] ImmutableExporterSettings_PartialFlushEnabled_Get,
[Description("name:immutableexportersettings_partialflushminspans_get")] ImmutableExporterSettings_PartialFlushMinSpans_Get,
[Description("name:immutableexportersettings_tracespipename_get")] ImmutableExporterSettings_TracesPipeName_Get,
[Description("name:immutableexportersettings_tracespipetimeoutms_get")] ImmutableExporterSettings_TracesPipeTimeoutMs_Get,
[Description("name:immutableexportersettings_tracesunixdomainsocketpath_get")] ImmutableExporterSettings_TracesUnixDomainSocketPath_Get,

[Description("name:integrationsettings_ctor")] IntegrationSettings_Ctor,

[Description("name:integrationsettings_analyticsenabled_get")] IntegrationSettings_AnalyticsEnabled_Get,
[Description("name:integrationsettings_analyticsenabled_set")] IntegrationSettings_AnalyticsEnabled_Set,
[Description("name:integrationsettings_analyticssamplerate_get")] IntegrationSettings_AnalyticsSampleRate_Get,
Expand All @@ -142,7 +60,6 @@ internal enum PublicApiUsage
[Description("name:integrationsettings_enabled_set")] IntegrationSettings_Enabled_Set,
[Description("name:integrationsettings_integrationname_get")] IntegrationSettings_IntegrationName_Get,

[Description("name:integrationsettingscollection_ctor_source")] IntegrationSettingsCollection_Ctor_Source,
[Description("name:integrationsettingscollection_indexer_name")] IntegrationSettingsCollection_Indexer_Name,

[Description("name:immutableintegrationsettings_analyticsenabled_get")] ImmutableIntegrationSettings_AnalyticsEnabled_Get,
Expand All @@ -151,19 +68,7 @@ internal enum PublicApiUsage
[Description("name:immutableintegrationsettings_integrationname_get")] ImmutableIntegrationSettings_IntegrationName_Get,
[Description("name:immutableintegrationsettingscollection_indexer_name")] ImmutableIntegrationSettingsCollection_Indexer_Name,

[Description("name:compositeconfigurationsource_ctor")] CompositeConfigurationSource_Ctor,
[Description("name:compositeconfigurationsource_add")] CompositeConfigurationSource_Add,
[Description("name:compositeconfigurationsource_insert")] CompositeConfigurationSource_Insert,
[Description("name:jsonconfigurationsource_ctor_json")] JsonConfigurationSource_Ctor_Json,
[Description("name:jsonconfigurationsource_fromfile")] JsonConfigurationSource_FromFile,
[Description("name:stringconfigurationsource_parsecustomkeyvalues_data")] StringConfigurationSource_ParseCustomKeyValues,
[Description("name:stringconfigurationsource_parsecustomkeyvalues_allowoptionalmappings")] StringConfigurationSource_ParseCustomKeyValues_AllowOptionalMappings,
[Description("name:customtelemeteredconfigurationsource_ctor")] CustomTelemeteredConfigurationSource_Ctor,
[Description("name:environmentconfigurationsource_ctor")] EnvironmentConfigurationSource_Ctor,
[Description("name:namevalueconfigurationsource_ctor")] NameValueConfigurationSource_Ctor,

[Description("name:tracersettings_ctor")] TracerSettings_Ctor,
[Description("name:tracersettings_ctor_source")] TracerSettings_Ctor_Source,
[Description("name:tracersettings_ctor_usedefaultsources")] TracerSettings_Ctor_UseDefaultSources,
[Description("name:tracersettings_analyticsenabled_get")] TracerSettings_AnalyticsEnabled_Get,
[Description("name:tracersettings_analyticsenabled_set")] TracerSettings_AnalyticsEnabled_Set,
Expand Down Expand Up @@ -204,15 +109,11 @@ internal enum PublicApiUsage
[Description("name:tracersettings_traceenabled_set")] TracerSettings_TraceEnabled_Set,
[Description("name:tracersettings_tracermetricsenabled_get")] TracerSettings_TracerMetricsEnabled_Get,
[Description("name:tracersettings_tracermetricsenabled_set")] TracerSettings_TracerMetricsEnabled_Set,
[Description("name:tracersettings_build")] TracerSettings_Build,
[Description("name:tracersettings_sethttpclienterrorstatuscodes")] TracerSettings_SetHttpClientErrorStatusCodes,
[Description("name:tracersettings_sethttpservererrorstatuscodes")] TracerSettings_SetHttpServerErrorStatusCodes,
[Description("name:tracersettings_setservicenamemappings")] TracerSettings_SetServiceNameMappings,
[Description("name:tracersettings_createdefaultconfigurationsource")] TracerSettings_CreateDefaultConfigurationSource,
[Description("name:tracersettings_fromdefaultsources")] TracerSettings_FromDefaultSources,

[Description("name:immutabletracersettings_ctor_source")] ImmutableTracerSettings_Ctor_Source,
[Description("name:immutabletracersettings_ctor_settings")] ImmutableTracerSettings_Ctor_Settings,
[Description("name:immutabletracersettings_analyticsenabled_get")] ImmutableTracerSettings_AnalyticsEnabled_Get,
[Description("name:immutabletracersettings_customsamplingrules_get")] ImmutableTracerSettings_CustomSamplingRules_Get,
[Description("name:immutabletracersettings_environment_get")] ImmutableTracerSettings_Environment_Get,
Expand All @@ -231,11 +132,7 @@ internal enum PublicApiUsage
[Description("name:immutabletracersettings_statscomputationenabled_get")] ImmutableTracerSettings_StatsComputationEnabled_Get,
[Description("name:immutabletracersettings_traceenabled_get")] ImmutableTracerSettings_TraceEnabled_Get,
[Description("name:immutabletracersettings_tracermetricsenabled_get")] ImmutableTracerSettings_TracerMetricsEnabled_Get,
[Description("name:immutabletracersettings_fromdefaultsources")] ImmutableTracerSettings_FromDefaultSources,
[Description("name:immutabletracersettings_tostring")] ImmutableTracerSettings_ToString,

[Description("name:opentracingtracerfactory_createtracer")] OpenTracingTracerFactory_CreateTracer,
[Description("name:opentracingtracerfactory_wraptracer")] OpenTracingTracerFactory_WrapTracer,
[Description("name:opentracingtracer_ctor_datadogtracer")] OpenTracingTracer_Ctor_DatadogTracer,
[Description("name:opentracingtracer_ctor_datadogtracer_scopemanager")] OpenTracingTracer_Ctor_DatadogTracer_ScopeManager,
}
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ static void IncrementOpenTelemetryConfigMetrics(MetricsTelemetryCollector collec
var collector = new MetricsTelemetryCollector(Timeout.InfiniteTimeSpan);
collector.Record(PublicApiUsage.Tracer_Configure);
collector.Record(PublicApiUsage.Tracer_Configure);
collector.Record(PublicApiUsage.Tracer_Ctor);
collector.Record(PublicApiUsage.Tracer_StartActive);
collector.RecordCountSpanFinished(15);
collector.RecordCountSharedIntegrationsError(MetricTags.IntegrationName.Aerospike, MetricTags.InstrumentationError.Invoker);
collector.RecordCountSpanCreated(MetricTags.IntegrationName.Aerospike);
Expand Down Expand Up @@ -132,9 +132,9 @@ static void IncrementOpenTelemetryConfigMetrics(MetricsTelemetryCollector collec

collector.AggregateMetrics();

collector.Record(PublicApiUsage.Tracer_Ctor);
collector.Record(PublicApiUsage.Tracer_Ctor);
collector.Record(PublicApiUsage.TracerSettings_Build);
collector.Record(PublicApiUsage.Tracer_StartActive);
collector.Record(PublicApiUsage.Tracer_StartActive);
collector.Record(PublicApiUsage.TracerSettings_Ctor);
collector.RecordCountSpanFinished(3);
collector.RecordCountTraceSegmentCreated(MetricTags.TraceContinuation.New, 2);
collector.RecordGaugeStatsBuckets(15);
Expand Down Expand Up @@ -180,7 +180,7 @@ static void IncrementOpenTelemetryConfigMetrics(MetricsTelemetryCollector collec
Metric = "public_api",
Points = new[] { new { Value = 1 }, new { Value = 2 } },
Type = TelemetryMetricType.Count,
Tags = new[] { PublicApiUsage.Tracer_Ctor.ToStringFast() },
Tags = new[] { PublicApiUsage.Tracer_StartActive.ToStringFast() },
Common = false,
Namespace = (string)null,
},
Expand All @@ -189,7 +189,7 @@ static void IncrementOpenTelemetryConfigMetrics(MetricsTelemetryCollector collec
Metric = "public_api",
Points = new[] { new { Value = 1 } },
Type = TelemetryMetricType.Count,
Tags = new[] { PublicApiUsage.TracerSettings_Build.ToStringFast() },
Tags = new[] { PublicApiUsage.TracerSettings_Ctor.ToStringFast() },
Common = false,
Namespace = (string)null,
},
Expand Down Expand Up @@ -513,7 +513,7 @@ public async Task AllMetricsAreReturned_ForCiVisibilityCollector(string wafVersi
var collector = new CiVisibilityMetricsTelemetryCollector(Timeout.InfiniteTimeSpan);
collector.Record(PublicApiUsage.Tracer_Configure);
collector.Record(PublicApiUsage.Tracer_Configure);
collector.Record(PublicApiUsage.Tracer_Ctor);
collector.Record(PublicApiUsage.Tracer_StartActive);
collector.RecordCountSharedIntegrationsError(MetricTags.IntegrationName.Aerospike, MetricTags.InstrumentationError.Invoker);

// These aren't recorded for ci visibility
Expand All @@ -535,9 +535,9 @@ public async Task AllMetricsAreReturned_ForCiVisibilityCollector(string wafVersi

collector.AggregateMetrics();

collector.Record(PublicApiUsage.Tracer_Ctor);
collector.Record(PublicApiUsage.Tracer_Ctor);
collector.Record(PublicApiUsage.TracerSettings_Build);
collector.Record(PublicApiUsage.Tracer_StartActive);
collector.Record(PublicApiUsage.Tracer_StartActive);
collector.Record(PublicApiUsage.TracerSettings_Ctor);

// These aren't recorded for ci visibility
collector.RecordCountSpanFinished(3);
Expand Down Expand Up @@ -583,7 +583,7 @@ public async Task AllMetricsAreReturned_ForCiVisibilityCollector(string wafVersi
Metric = "public_api",
Points = new[] { new { Value = 1 }, new { Value = 2 } },
Type = TelemetryMetricType.Count,
Tags = new[] { PublicApiUsage.Tracer_Ctor.ToStringFast() },
Tags = new[] { PublicApiUsage.Tracer_StartActive.ToStringFast() },
Common = false,
Namespace = (string)null,
},
Expand All @@ -592,7 +592,7 @@ public async Task AllMetricsAreReturned_ForCiVisibilityCollector(string wafVersi
Metric = "public_api",
Points = new[] { new { Value = 1 } },
Type = TelemetryMetricType.Count,
Tags = new[] { PublicApiUsage.TracerSettings_Build.ToStringFast() },
Tags = new[] { PublicApiUsage.TracerSettings_Ctor.ToStringFast() },
Common = false,
Namespace = (string)null,
},
Expand Down
Loading