File tree Expand file tree Collapse file tree 4 files changed +25
-5
lines changed Expand file tree Collapse file tree 4 files changed +25
-5
lines changed Original file line number Diff line number Diff line change @@ -56,6 +56,7 @@ nuget Ionide.LanguageServerProtocol >= 0.4.23
5656nuget Microsoft.Extensions.Caching.Memory
5757nuget OpenTelemetry.Api >= 1.3.2
5858nuget OpenTelemetry.Exporter.OpenTelemetryProtocol >= 1.3.2 # 1.4 bumps to 7.0 versions of System.Diagnostics libs, so can't use it
59+ nuget OpenTelemetry.Instrumentation.Runtime
5960nuget LinkDotNet.StringBuilder 1.18.0
6061nuget CommunityToolkit.HighPerformance
6162nuget System.Security.Cryptography.Pkcs 6.0.4
Original file line number Diff line number Diff line change @@ -378,6 +378,8 @@ NUGET
378378 Grpc (>= 2.44 < 3.0) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0) (&& (== netstandard2.1) (>= net462))
379379 Grpc.Net.Client (>= 2.43 < 3.0) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= netstandard2.1)) (== netstandard2.1)
380380 OpenTelemetry (>= 1.3.2)
381+ OpenTelemetry.Instrumentation.Runtime (1.0)
382+ OpenTelemetry.Api (>= 1.3 < 2.0)
381383 Perfolizer (0.2.1)
382384 System.Memory (>= 4.5.3)
383385 runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
Original file line number Diff line number Diff line change @@ -14,12 +14,14 @@ open FsAutoComplete.Lsp
1414open OpenTelemetry
1515open OpenTelemetry.Resources
1616open OpenTelemetry.Trace
17+ open OpenTelemetry.Metrics
1718
1819module Parser =
1920 open FsAutoComplete.Core
2021 open System.Diagnostics
2122
2223 let mutable tracerProvider = Unchecked.defaultof<_>
24+ let mutable meterProvider = Unchecked.defaultof<_>
2325
2426 [<Struct>]
2527 type Pos = { Line: int ; Column: int }
@@ -194,19 +196,33 @@ module Parser =
194196 let configureOTel =
195197 Invocation.InvocationMiddleware( fun ctx next ->
196198
199+
200+
197201 if ctx.ParseResult.GetValueForOption otelTracingOption then
202+
198203 let serviceName = FsAutoComplete.Utils.Tracing.serviceName
199204 let version = FsAutoComplete.Utils.Version.info() .Version
200205
206+ let resourceBuilder =
207+ ResourceBuilder
208+ .CreateDefault()
209+ .AddService( serviceName = serviceName, serviceVersion = version)
210+
211+
212+ meterProvider <-
213+ Sdk
214+ .CreateMeterProviderBuilder()
215+ .AddMeter()
216+ .AddRuntimeInstrumentation()
217+ .SetResourceBuilder( resourceBuilder)
218+ .AddOtlpExporter()
219+ .Build()
220+
201221 tracerProvider <-
202222 Sdk
203223 .CreateTracerProviderBuilder()
204224 .AddSource( serviceName, Tracing.fscServiceName)
205- .SetResourceBuilder(
206- ResourceBuilder
207- .CreateDefault()
208- .AddService( serviceName = serviceName, serviceVersion = version)
209- )
225+ .SetResourceBuilder( resourceBuilder)
210226 .AddOtlpExporter()
211227 .Build()
212228
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ System.CommandLine
1818FSharp.Data.Adaptive
1919Microsoft.Extensions.Caching.Memory
2020OpenTelemetry.Exporter.OpenTelemetryProtocol
21+ OpenTelemetry.Instrumentation.Runtime
2122Microsoft.CodeAnalysis
2223LinkDotNet.StringBuilder
2324CommunityToolkit.HighPerformance
You can’t perform that action at this time.
0 commit comments