Graphite

Graphite

The App.Metrics.Graphite nuget package reports metrics to Graphite using the App.Metrics.Formatters.Graphite nuget package to format metrics by default using the PlainText Protocol.

Getting started

To use the Graphite reporter, first install the nuget package:

nuget install App.Metrics.Graphite

Then enable the reporter using Report.ToGraphite(...):

var metrics = new MetricsBuilder()
    .Report.ToGraphite("http://127.0.0.1:2003", TimeSpan.FromSeconds(5))
    .Build();

See Reporting for details on configuring metric report scheduling.

Configuration

Configuration options are provided as a setup action used with ToGraphite(...).

To configure ToGraphite reporting options:

var filter = new MetricsFilter().WhereType(MetricType.Timer);
var metrics = new MetricsBuilder()
    .Report.ToGraphite(
        options => {
            options.Graphite.BaseUri = new Uri("http://127.0.0.1:8086");
            options.Graphite.Protocol = Protocol.Tcp; // or Protocol.Udp
            options.ClientPolicy.BackoffPeriod = TimeSpan.FromSeconds(30);
            options.ClientPolicy.FailuresBeforeBackoff = 5;
            options.ClientPolicy.Timeout = TimeSpan.FromSeconds(10);
            options.Filter = filter;
            options.FlushInterval = TimeSpan.FromSeconds(20);
        })
    .Build();

Web Monitoring

Grafana

The App.Metrics.AspNetCore.Tracking nuget package automatically records typical web metrics when added to an ASP.NET Core application. App Metrics includes a couple of pre-built Grafana dashboards to visualize these metrics:

Install the App Metrics Grafana dashboard. There is also an OAuth2 dashboard for APIs using OAuth2.