From bab8a9b61149c127c9047ca5840b5c87fc3f06b5 Mon Sep 17 00:00:00 2001 From: Amadeusz Lechniak Date: Wed, 5 Feb 2025 09:11:16 +0100 Subject: [PATCH] Move ResourceUtilizationInstruments to Shared project (#5844) * Move ResourceUtilizationInstruments to Shared project * Update readme * Fix warnings --- eng/MSBuild/Shared.props | 4 ++++ ...iagnostics.HealthChecks.ResourceUtilization.csproj | 1 + .../ResourceUtilizationHealthCheck.cs | 11 ++++++----- .../Linux/LinuxUtilizationProvider.cs | 1 + .../Linux/Network/LinuxNetworkMetrics.cs | 1 + ...t.Extensions.Diagnostics.ResourceMonitoring.csproj | 1 + .../Windows/Network/WindowsNetworkMetrics.cs | 1 + .../Windows/WindowsContainerSnapshotProvider.cs | 1 + .../Windows/WindowsSnapshotProvider.cs | 1 + src/Shared/Instruments/README.md | 11 +++++++++++ .../Instruments}/ResourceUtilizationInstruments.cs | 8 ++++++-- .../Linux/AcceptanceTest.cs | 2 +- .../Linux/LinuxCountersTests.cs | 1 + .../Linux/LinuxNetworkMetricsTests.cs | 1 + .../Linux/LinuxUtilizationProviderTests.cs | 1 + .../Windows/WindowsContainerSnapshotProviderTests.cs | 1 + .../Windows/WindowsNetworkMetricsTests.cs | 1 + .../Windows/WindowsSnapshotProviderTests.cs | 1 + 18 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 src/Shared/Instruments/README.md rename src/{Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring => Shared/Instruments}/ResourceUtilizationInstruments.cs (94%) diff --git a/eng/MSBuild/Shared.props b/eng/MSBuild/Shared.props index 23b183e6484..13719d54959 100644 --- a/eng/MSBuild/Shared.props +++ b/eng/MSBuild/Shared.props @@ -11,6 +11,10 @@ + + + + diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization.csproj b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization.csproj index 540e7b08f3d..1f3123a6dfa 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization.csproj +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization.csproj @@ -11,6 +11,7 @@ true true true + true diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheck.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheck.cs index d2e41f3a649..ec9beb016ee 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheck.cs +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheck.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Diagnostics.ResourceMonitoring; using Microsoft.Extensions.Options; using Microsoft.Shared.Diagnostics; +using Microsoft.Shared.Instruments; namespace Microsoft.Extensions.Diagnostics.HealthChecks; @@ -157,7 +158,7 @@ private void Dispose(bool disposing) private void OnInstrumentPublished(Instrument instrument, MeterListener listener) { - if (instrument.Meter.Name is "Microsoft.Extensions.Diagnostics.ResourceMonitoring") + if (instrument.Meter.Name == ResourceUtilizationInstruments.MeterName) { listener.EnableMeasurementEvents(instrument); } @@ -169,12 +170,12 @@ private void OnMeasurementRecorded( { switch (instrument.Name) { - case "process.cpu.utilization": - case "container.cpu.limit.utilization": + case ResourceUtilizationInstruments.ProcessCpuUtilization: + case ResourceUtilizationInstruments.ContainerCpuLimitUtilization: _cpuUsedPercentage = measurement * _multiplier; break; - case "dotnet.process.memory.virtual.utilization": - case "container.memory.limit.utilization": + case ResourceUtilizationInstruments.ProcessMemoryUtilization: + case ResourceUtilizationInstruments.ContainerMemoryLimitUtilization: _memoryUsedPercentage = measurement * _multiplier; break; } diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/LinuxUtilizationProvider.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/LinuxUtilizationProvider.cs index d7914104adb..7fc5947aa36 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/LinuxUtilizationProvider.cs +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/LinuxUtilizationProvider.cs @@ -6,6 +6,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; +using Microsoft.Shared.Instruments; namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring.Linux; diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/Network/LinuxNetworkMetrics.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/Network/LinuxNetworkMetrics.cs index 44a2512a916..a7e0c6b2303 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/Network/LinuxNetworkMetrics.cs +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/Network/LinuxNetworkMetrics.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.Metrics; +using Microsoft.Shared.Instruments; namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring.Linux.Network; diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Microsoft.Extensions.Diagnostics.ResourceMonitoring.csproj b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Microsoft.Extensions.Diagnostics.ResourceMonitoring.csproj index 41140bb4395..ea04521c94d 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Microsoft.Extensions.Diagnostics.ResourceMonitoring.csproj +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Microsoft.Extensions.Diagnostics.ResourceMonitoring.csproj @@ -17,6 +17,7 @@ true true true + true diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Network/WindowsNetworkMetrics.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Network/WindowsNetworkMetrics.cs index d0ce26f7044..f2efb14e990 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Network/WindowsNetworkMetrics.cs +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Network/WindowsNetworkMetrics.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.Metrics; +using Microsoft.Shared.Instruments; namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring.Windows.Network; diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsContainerSnapshotProvider.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsContainerSnapshotProvider.cs index 3a7585ac3c8..56d8bc2e578 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsContainerSnapshotProvider.cs +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsContainerSnapshotProvider.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; +using Microsoft.Shared.Instruments; namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring.Windows; diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsSnapshotProvider.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsSnapshotProvider.cs index 01535d01b19..325e8479c5d 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsSnapshotProvider.cs +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsSnapshotProvider.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; +using Microsoft.Shared.Instruments; namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring.Windows; diff --git a/src/Shared/Instruments/README.md b/src/Shared/Instruments/README.md new file mode 100644 index 00000000000..210a0879bb0 --- /dev/null +++ b/src/Shared/Instruments/README.md @@ -0,0 +1,11 @@ +# Diagnostic IDs + +Contains common telemetry instruments names that are created or consumed in other projects. + +To use this in your project, add the following to your `.csproj` file: + +```xml + + true + +``` diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/ResourceUtilizationInstruments.cs b/src/Shared/Instruments/ResourceUtilizationInstruments.cs similarity index 94% rename from src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/ResourceUtilizationInstruments.cs rename to src/Shared/Instruments/ResourceUtilizationInstruments.cs index fe8e508afb2..a5a95a254c5 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/ResourceUtilizationInstruments.cs +++ b/src/Shared/Instruments/ResourceUtilizationInstruments.cs @@ -1,9 +1,11 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; +#pragma warning disable CA1716 +namespace Microsoft.Shared.Instruments; +#pragma warning restore CA1716 -namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring; +#pragma warning disable CS1574 /// /// Represents the names of instruments published by this package. @@ -64,3 +66,5 @@ internal static class ResourceUtilizationInstruments /// public const string SystemNetworkConnections = "system.network.connections"; } + +#pragma warning disable CS1574 diff --git a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/AcceptanceTest.cs b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/AcceptanceTest.cs index 5611ad8ec00..c786ec416a0 100644 --- a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/AcceptanceTest.cs +++ b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/AcceptanceTest.cs @@ -11,11 +11,11 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Linux.Test; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting.Testing; using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; +using Microsoft.Shared.Instruments; using Microsoft.TestUtilities; using Xunit; diff --git a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxCountersTests.cs b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxCountersTests.cs index abe3098661d..e0ff3880075 100644 --- a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxCountersTests.cs +++ b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxCountersTests.cs @@ -7,6 +7,7 @@ using System.Threading; using FluentAssertions; using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Linux.Network; +using Microsoft.Shared.Instruments; using Moq; using Xunit; diff --git a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxNetworkMetricsTests.cs b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxNetworkMetricsTests.cs index a1e38b293d9..6668ebe811c 100644 --- a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxNetworkMetricsTests.cs +++ b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxNetworkMetricsTests.cs @@ -5,6 +5,7 @@ using System.Linq; using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Linux.Network; using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Test.Helpers; +using Microsoft.Shared.Instruments; using Microsoft.TestUtilities; using Moq; using Xunit; diff --git a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxUtilizationProviderTests.cs b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxUtilizationProviderTests.cs index 8a9b10ff460..1eb7a0af712 100644 --- a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxUtilizationProviderTests.cs +++ b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Linux/LinuxUtilizationProviderTests.cs @@ -9,6 +9,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Test.Helpers; using Microsoft.Extensions.Logging.Testing; +using Microsoft.Shared.Instruments; using Microsoft.TestUtilities; using Moq; using VerifyXunit; diff --git a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsContainerSnapshotProviderTests.cs b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsContainerSnapshotProviderTests.cs index 487f57b950e..103fdc988d5 100644 --- a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsContainerSnapshotProviderTests.cs +++ b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsContainerSnapshotProviderTests.cs @@ -10,6 +10,7 @@ using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Windows.Interop; using Microsoft.Extensions.Logging.Testing; using Microsoft.Extensions.Time.Testing; +using Microsoft.Shared.Instruments; using Moq; using VerifyXunit; using Xunit; diff --git a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsNetworkMetricsTests.cs b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsNetworkMetricsTests.cs index 1680eb00479..bafb5816eb9 100644 --- a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsNetworkMetricsTests.cs +++ b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsNetworkMetricsTests.cs @@ -5,6 +5,7 @@ using System.Linq; using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Test.Helpers; using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Windows.Network; +using Microsoft.Shared.Instruments; using Microsoft.TestUtilities; using Moq; using Xunit; diff --git a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsSnapshotProviderTests.cs b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsSnapshotProviderTests.cs index d3be9fe6a24..db89df872c2 100644 --- a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsSnapshotProviderTests.cs +++ b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/WindowsSnapshotProviderTests.cs @@ -11,6 +11,7 @@ using Microsoft.Extensions.Logging.Testing; using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; +using Microsoft.Shared.Instruments; using Microsoft.TestUtilities; using Moq; using VerifyXunit;