static void Main(string[] args) { var init = true; var configuration = new Configuration { LogGroupName = "/Canary/Dotnet/CloudWatchAgent/Metrics", EnvironmentOverride = Environments.ECS, AgentEndPoint = "tcp://127.0.0.1:25888" }; var loggerFactory = LoggerFactory.Create(builder => builder .SetMinimumLevel(LogLevel.Information) .AddConsole()); EnvironmentConfigurationProvider.Config = configuration; // get the assembly version (this does not reflect NuGet pre-releases) var packageVersion = GetPackageVersion(); while (true) { using (var logger = new MetricsLogger(loggerFactory)) { logger.SetNamespace("Canary"); var dimensionSet = new DimensionSet(); dimensionSet.AddDimension("Runtime", "Dotnet"); dimensionSet.AddDimension("Platform", "ECS"); dimensionSet.AddDimension("Agent", "CloudWatchAgent"); dimensionSet.AddDimension("Version", packageVersion); logger.SetDimensions(dimensionSet); using (var currentProcess = System.Diagnostics.Process.GetCurrentProcess()) { // https://github.com/dotnet/corefx/blob/3633ea2c6bf9d52029681efeedd84fd7a06eb6ba/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs#L137 logger.PutMetric("Memory.RSS", currentProcess.WorkingSet64, Unit.BYTES); } logger.PutMetric("Invoke", 1, Unit.NONE); if (init) { init = false; logger.PutMetric("Init", 1, Unit.NONE); } logger.PutMetric("Memory.HeapUsed", GC.GetTotalMemory(false), Unit.BYTES); } Thread.Sleep(1_000); } }
public void TestOverridePreviousDimensions() { var dimensionName = "dim"; var dimensionValue = "dimValue"; _metricsLogger.PutDimensions(new DimensionSet("foo", "bar")); _metricsLogger.SetDimensions(new DimensionSet(dimensionName, dimensionValue)); _metricsLogger.Flush(); Assert.Single(_sink.MetricsContext.GetAllDimensionSets()); Assert.Single(_sink.MetricsContext.GetAllDimensionSets()[0].DimensionKeys); Assert.Equal(dimensionValue, _sink.MetricsContext.GetAllDimensionSets()[0].GetDimensionValue(dimensionName)); }
public void TestOverrideDefaultDimensions() { var dimensionName = "dim"; var dimensionValue = "dimValue"; var defaultDimName = "defaultDim"; var defaultDimValue = "defaultDimValue"; MetricsContext metricsContext = new MetricsContext(); metricsContext.DefaultDimensions.AddDimension(defaultDimName, defaultDimValue); metricsContext.SetDimensions(new DimensionSet(defaultDimName, defaultDimValue)); _metricsLogger = new MetricsLogger(_environment, metricsContext, _logger); _metricsLogger.SetDimensions(new DimensionSet(dimensionName, dimensionValue)); _metricsLogger.Flush(); Assert.Single(_sink.MetricsContext.GetAllDimensionSets()); Assert.Null(_sink.MetricsContext.GetAllDimensionSets()[0].GetDimensionValue(defaultDimName)); }