119 lines
2.8 KiB
C#
119 lines
2.8 KiB
C#
using App.Metrics;
|
|
using App.Metrics.Gauge;
|
|
using App.Metrics.Meter;
|
|
using App.Metrics.Timer;
|
|
|
|
namespace PluralKit.Core;
|
|
|
|
public static class CoreMetrics
|
|
{
|
|
public static GaugeOptions SystemCount => new()
|
|
{
|
|
Name = "Systems",
|
|
MeasurementUnit = Unit.Items
|
|
};
|
|
|
|
public static GaugeOptions MemberCount => new()
|
|
{
|
|
Name = "Members",
|
|
MeasurementUnit = Unit.Items
|
|
};
|
|
|
|
public static GaugeOptions MessageCount => new()
|
|
{
|
|
Name = "Messages",
|
|
MeasurementUnit = Unit.Items
|
|
};
|
|
|
|
public static GaugeOptions SwitchCount => new()
|
|
{
|
|
Name = "Switches",
|
|
MeasurementUnit = Unit.Items
|
|
};
|
|
|
|
public static GaugeOptions GroupCount => new()
|
|
{
|
|
Name = "Groups",
|
|
MeasurementUnit = Unit.Items
|
|
};
|
|
|
|
public static GaugeOptions ProcessPhysicalMemory => new()
|
|
{
|
|
Name = "Process Physical Memory",
|
|
MeasurementUnit = Unit.Bytes,
|
|
Context = "Process"
|
|
};
|
|
|
|
public static GaugeOptions ProcessVirtualMemory => new()
|
|
{
|
|
Name = "Process Virtual Memory",
|
|
MeasurementUnit = Unit.Bytes,
|
|
Context = "Process"
|
|
};
|
|
|
|
public static GaugeOptions ProcessPrivateMemory => new()
|
|
{
|
|
Name = "Process Private Memory",
|
|
MeasurementUnit = Unit.Bytes,
|
|
Context = "Process"
|
|
};
|
|
|
|
public static GaugeOptions ProcessThreads => new()
|
|
{
|
|
Name = "Process Thread Count",
|
|
MeasurementUnit = Unit.Threads,
|
|
Context = "Process"
|
|
};
|
|
|
|
public static GaugeOptions ProcessHandles => new()
|
|
{
|
|
Name = "Process Handle Count",
|
|
MeasurementUnit = Unit.Items,
|
|
Context = "Process"
|
|
};
|
|
|
|
public static GaugeOptions CpuUsage => new()
|
|
{
|
|
Name = "CPU Usage",
|
|
MeasurementUnit = Unit.Percent,
|
|
Context = "Process"
|
|
};
|
|
|
|
public static MeterOptions DatabaseRequests => new()
|
|
{
|
|
Name = "Database Requests",
|
|
MeasurementUnit = Unit.Requests,
|
|
Context = "Database",
|
|
RateUnit = TimeUnit.Seconds
|
|
};
|
|
|
|
public static TimerOptions DatabaseQuery => new()
|
|
{
|
|
Name = "Database Query",
|
|
MeasurementUnit = Unit.Requests,
|
|
DurationUnit = TimeUnit.Seconds,
|
|
RateUnit = TimeUnit.Seconds,
|
|
Context = "Database"
|
|
};
|
|
|
|
public static GaugeOptions DatabaseConnections => new()
|
|
{
|
|
Name = "Database Connections",
|
|
MeasurementUnit = Unit.Connections,
|
|
Context = "Database"
|
|
};
|
|
public static GaugeOptions DatabaseConnectionsByCluster => new()
|
|
{
|
|
Name = "Database Connections by Cluster",
|
|
MeasurementUnit = Unit.Connections,
|
|
Context = "Database"
|
|
};
|
|
}
|
|
|
|
public record ClusterMetricInfo
|
|
{
|
|
public int GuildCount;
|
|
public int ChannelCount;
|
|
public int DatabaseConnectionCount;
|
|
public int WebhookCacheSize;
|
|
} |