Skip to content

Commit

Permalink
PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
kkeirstead committed Mar 4, 2025
1 parent b934d90 commit 1d553d3
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 40 deletions.
32 changes: 17 additions & 15 deletions documentation/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -1762,7 +1762,7 @@
"capabilities": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IMonitorCapability"
"$ref": "#/components/schemas/MonitorCapability"
},
"description": "The capabilities provided by dotnet-monitor.",
"nullable": true
Expand Down Expand Up @@ -1947,20 +1947,6 @@
},
"additionalProperties": false
},
"IMonitorCapability": {
"type": "object",
"properties": {
"name": {
"type": "string",
"nullable": true,
"readOnly": true
},
"enabled": {
"type": "boolean"
}
},
"additionalProperties": false
},
"LogLevel": {
"enum": [
"Trace",
Expand Down Expand Up @@ -2020,6 +2006,22 @@
},
"additionalProperties": false
},
"MonitorCapability": {
"required": [
"name"
],
"type": "object",
"properties": {
"name": {
"minLength": 1,
"type": "string"
},
"enabled": {
"type": "boolean"
}
},
"additionalProperties": false
},
"OperationError": {
"type": "object",
"properties": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,6 @@ namespace Microsoft.Diagnostics.Monitoring.Options
{
public class MonitorCapability
{
public const string Exceptions = "exceptions";
public const string ParameterCapturing = "parameters";
public const string CallStacks = "callstacks";
public const string Metrics = "metrics";
public const string HttpEgress = "http_egress";

[Required]
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.Diagnostics.Monitoring.Options
{
internal static class MonitorCapabilityConstants
{
public const string Exceptions = "exceptions";
public const string ParameterCapturing = "parameters";
public const string CallStacks = "callstacks";
public const string Metrics = "metrics";
public const string HttpEgress = "http_egress";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,16 @@ public Task InfoEndpointValidationTest(DiagnosticPortConnectionMode mode, bool e
}

Assert.Equal(5, info.Capabilities.Length); // Update if capabilities change
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapability.Exceptions);
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapability.ParameterCapturing);
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapability.Metrics);
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapability.CallStacks);
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapability.HttpEgress);
Assert.True(info.Capabilities.First(c => c.Name == MonitorCapability.HttpEgress).Enabled);
Assert.True(info.Capabilities.First(c => c.Name == MonitorCapability.Metrics).Enabled);
Assert.Equal(enableInProcessFeatures, info.Capabilities.First(c => c.Name == MonitorCapability.Exceptions).Enabled);
Assert.Equal(enableInProcessFeatures, info.Capabilities.First(c => c.Name == MonitorCapability.ParameterCapturing).Enabled);
Assert.Equal(enableInProcessFeatures, info.Capabilities.First(c => c.Name == MonitorCapability.CallStacks).Enabled);
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapabilityConstants.Exceptions);
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapabilityConstants.ParameterCapturing);
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapabilityConstants.Metrics);
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapabilityConstants.CallStacks);
Assert.Contains(info.Capabilities, capability => capability.Name == MonitorCapabilityConstants.HttpEgress);
Assert.True(info.Capabilities.First(c => c.Name == MonitorCapabilityConstants.HttpEgress).Enabled);
Assert.True(info.Capabilities.First(c => c.Name == MonitorCapabilityConstants.Metrics).Enabled);
Assert.Equal(enableInProcessFeatures, info.Capabilities.First(c => c.Name == MonitorCapabilityConstants.Exceptions).Enabled);
Assert.Equal(enableInProcessFeatures, info.Capabilities.First(c => c.Name == MonitorCapabilityConstants.ParameterCapturing).Enabled);
Assert.Equal(enableInProcessFeatures, info.Capabilities.First(c => c.Name == MonitorCapabilityConstants.CallStacks).Enabled);

await runner.SendCommandAsync(TestAppScenarios.AsyncWait.Commands.Continue);
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace Microsoft.Diagnostics.Monitoring
public class CallStacksCapabilityPostConfigureOptions : CapabilityPostConfigureOptions<CallStacksOptions>
{
public CallStacksCapabilityPostConfigureOptions(IEnumerable<MonitorCapability> capabilities)
: base(capabilities.First(c => c.Name == MonitorCapability.CallStacks))
: base(capabilities.First(c => c.Name == MonitorCapabilityConstants.CallStacks))
{
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace Microsoft.Diagnostics.Monitoring
public class ExceptionsCapabilityPostConfigureOptions : CapabilityPostConfigureOptions<ExceptionsOptions>
{
public ExceptionsCapabilityPostConfigureOptions(IEnumerable<MonitorCapability> capabilities)
: base(capabilities.First(c => c.Name == MonitorCapability.Exceptions))
: base(capabilities.First(c => c.Name == MonitorCapabilityConstants.Exceptions))
{
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace Microsoft.Diagnostics.Monitoring
public class MetricsCapabilityPostConfigureOptions : CapabilityPostConfigureOptions<MetricsOptions>
{
public MetricsCapabilityPostConfigureOptions(IEnumerable<MonitorCapability> capabilities)
: base(capabilities.First(c => c.Name == MonitorCapability.Metrics))
: base(capabilities.First(c => c.Name == MonitorCapabilityConstants.Metrics))
{
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace Microsoft.Diagnostics.Monitoring
public class ParametersCapabilityPostConfigureOptions : CapabilityPostConfigureOptions<ParameterCapturingOptions>
{
public ParametersCapabilityPostConfigureOptions(IEnumerable<MonitorCapability> capabilities)
: base(capabilities.First(c => c.Name == MonitorCapability.ParameterCapturing))
: base(capabilities.First(c => c.Name == MonitorCapabilityConstants.ParameterCapturing))
{
}

Expand Down
10 changes: 5 additions & 5 deletions src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -243,19 +243,19 @@ public static IServiceCollection ConfigureStorage(this IServiceCollection servic

public static IServiceCollection ConfigureCapabilities(this IServiceCollection services, bool noHttpEgress)
{
services.AddSingleton(new MonitorCapability() { Name = MonitorCapability.Metrics });
services.AddSingleton(new MonitorCapability() { Name = MonitorCapabilityConstants.Metrics });
services.AddSingleton<IPostConfigureOptions<MetricsOptions>, MetricsCapabilityPostConfigureOptions>();

services.AddSingleton(new MonitorCapability() { Name = MonitorCapability.Exceptions });
services.AddSingleton(new MonitorCapability() { Name = MonitorCapabilityConstants.Exceptions });
services.AddSingleton<IPostConfigureOptions<ExceptionsOptions>, ExceptionsCapabilityPostConfigureOptions>();

services.AddSingleton(new MonitorCapability() { Name = MonitorCapability.CallStacks });
services.AddSingleton(new MonitorCapability() { Name = MonitorCapabilityConstants.CallStacks });
services.AddSingleton<IPostConfigureOptions<CallStacksOptions>, CallStacksCapabilityPostConfigureOptions>();

services.AddSingleton(new MonitorCapability() { Name = MonitorCapability.ParameterCapturing });
services.AddSingleton(new MonitorCapability() { Name = MonitorCapabilityConstants.ParameterCapturing });
services.AddSingleton<IPostConfigureOptions<ParameterCapturingOptions>, ParametersCapabilityPostConfigureOptions>();

services.AddSingleton(new MonitorCapability() { Name = MonitorCapability.HttpEgress, Enabled = !noHttpEgress });
services.AddSingleton(new MonitorCapability() { Name = MonitorCapabilityConstants.HttpEgress, Enabled = !noHttpEgress });

return services;
}
Expand Down

0 comments on commit 1d553d3

Please sign in to comment.