Skip to content

Commit

Permalink
Provide metrics for NineChronicles node
Browse files Browse the repository at this point in the history
  • Loading branch information
moreal committed Feb 1, 2023
1 parent 3249a4f commit 4bb0c7a
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 0 deletions.
7 changes: 7 additions & 0 deletions NineChronicles.Headless/ActionEvaluationPublisher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Diagnostics.Metrics;
using System.IO;
using System.IO.Compression;
using System.Linq;
Expand Down Expand Up @@ -66,6 +67,12 @@ public ActionEvaluationPublisher(
_context = context;
_sentryTraces = sentryTraces;

var meter = new Meter("NineChronicles");
meter.CreateObservableGauge(
"ninechronicles_rpc_clients_count",
() => this.GetClients().Count,
description: "Number of RPC clients connected.");

ActionEvaluationHub.OnClientDisconnected += RemoveClient;
}

Expand Down
1 change: 1 addition & 0 deletions NineChronicles.Headless/HostBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ RpcNodeServiceProperties properties
services.AddOpenTelemetry()
.WithMetrics(
builder => builder
.AddMeter("NineChronicles")
.AddRuntimeInstrumentation()
.AddAspNetCoreInstrumentation()
.AddPrometheusExporter());
Expand Down
14 changes: 14 additions & 0 deletions NineChronicles.Headless/NineChroniclesNodeService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
using System.Linq;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Diagnostics.Metrics;
using System.Reflection;
using System.Security.Cryptography;
using System.Threading;
Expand Down Expand Up @@ -278,6 +279,19 @@ StandaloneContext context
txQuotaPerSigner: properties.TxQuotaPerSigner
);
service.ConfigureContext(context);
var meter = new Meter("NineChronicles");
meter.CreateObservableGauge(
"ninechronicles_tip_index",
() => service.BlockChain.Tip.Index,
description: "The tip block's index.");
meter.CreateObservableGauge(
"ninechronicles_staged_txids_count",
() => service.BlockChain.GetStagedTransactionIds().Count,
description: "Number of staged transactions.");
meter.CreateObservableGauge(
"ninechronicles_subscriber_addresses_count",
() => context.AgentAddresses.Count);

return service;
}

Expand Down

0 comments on commit 4bb0c7a

Please sign in to comment.