mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-20 11:32:19 +00:00
9d5ed1acac
* Refactor: reimplement scanner Signed-off-by: RustFS Developer <dandan@rustfs.com> * comment lock Signed-off-by: junxiang Mu <1948535941@qq.com> * remove dirty file Signed-off-by: junxiang Mu <1948535941@qq.com> * Fix: fix rebase * fix(scanner): Improve error handling and logging Signed-off-by: junxiang Mu <1948535941@qq.com> --------- Signed-off-by: RustFS Developer <dandan@rustfs.com> Signed-off-by: junxiang Mu <1948535941@qq.com> Co-authored-by: RustFS Developer <dandan@rustfs.com>
681 lines
28 KiB
Rust
681 lines
28 KiB
Rust
// Copyright 2024 RustFS Team
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
/// The metric name is the individual name of the metric
|
|
#[allow(dead_code)]
|
|
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
pub enum MetricName {
|
|
// The generic metric name
|
|
AuthTotal,
|
|
CanceledTotal,
|
|
ErrorsTotal,
|
|
HeaderTotal,
|
|
HealTotal,
|
|
HitsTotal,
|
|
InflightTotal,
|
|
InvalidTotal,
|
|
LimitTotal,
|
|
MissedTotal,
|
|
WaitingTotal,
|
|
IncomingTotal,
|
|
ObjectTotal,
|
|
VersionTotal,
|
|
DeleteMarkerTotal,
|
|
OfflineTotal,
|
|
OnlineTotal,
|
|
OpenTotal,
|
|
ReadTotal,
|
|
TimestampTotal,
|
|
WriteTotal,
|
|
Total,
|
|
FreeInodes,
|
|
|
|
// Failure statistical metrics
|
|
LastMinFailedCount,
|
|
LastMinFailedBytes,
|
|
LastHourFailedCount,
|
|
LastHourFailedBytes,
|
|
TotalFailedCount,
|
|
TotalFailedBytes,
|
|
|
|
// Worker metrics
|
|
CurrActiveWorkers,
|
|
AvgActiveWorkers,
|
|
MaxActiveWorkers,
|
|
RecentBacklogCount,
|
|
CurrInQueueCount,
|
|
CurrInQueueBytes,
|
|
ReceivedCount,
|
|
SentCount,
|
|
CurrTransferRate,
|
|
AvgTransferRate,
|
|
MaxTransferRate,
|
|
CredentialErrors,
|
|
|
|
// Link latency metrics
|
|
CurrLinkLatency,
|
|
AvgLinkLatency,
|
|
MaxLinkLatency,
|
|
|
|
// Link status metrics
|
|
LinkOnline,
|
|
LinkOfflineDuration,
|
|
LinkDowntimeTotalDuration,
|
|
|
|
// Queue metrics
|
|
AvgInQueueCount,
|
|
AvgInQueueBytes,
|
|
MaxInQueueCount,
|
|
MaxInQueueBytes,
|
|
|
|
// Proxy request metrics
|
|
ProxiedGetRequestsTotal,
|
|
ProxiedHeadRequestsTotal,
|
|
ProxiedPutTaggingRequestsTotal,
|
|
ProxiedGetTaggingRequestsTotal,
|
|
ProxiedDeleteTaggingRequestsTotal,
|
|
ProxiedGetRequestsFailures,
|
|
ProxiedHeadRequestsFailures,
|
|
ProxiedPutTaggingRequestFailures,
|
|
ProxiedGetTaggingRequestFailures,
|
|
ProxiedDeleteTaggingRequestFailures,
|
|
|
|
// Byte-related metrics
|
|
FreeBytes,
|
|
ReadBytes,
|
|
RcharBytes,
|
|
ReceivedBytes,
|
|
LatencyMilliSec,
|
|
SentBytes,
|
|
TotalBytes,
|
|
UsedBytes,
|
|
WriteBytes,
|
|
WcharBytes,
|
|
|
|
// Latency metrics
|
|
LatencyMicroSec,
|
|
LatencyNanoSec,
|
|
|
|
// Information metrics
|
|
CommitInfo,
|
|
UsageInfo,
|
|
VersionInfo,
|
|
|
|
// Distribution metrics
|
|
SizeDistribution,
|
|
VersionDistribution,
|
|
TtfbDistribution,
|
|
TtlbDistribution,
|
|
|
|
// Time metrics
|
|
LastActivityTime,
|
|
StartTime,
|
|
UpTime,
|
|
Memory,
|
|
Vmemory,
|
|
Cpu,
|
|
|
|
// Expiration and conversion metrics
|
|
ExpiryMissedTasks,
|
|
ExpiryMissedFreeVersions,
|
|
ExpiryMissedTierJournalTasks,
|
|
ExpiryNumWorkers,
|
|
TransitionMissedTasks,
|
|
TransitionedBytes,
|
|
TransitionedObjects,
|
|
TransitionedVersions,
|
|
|
|
//Tier request metrics
|
|
TierRequestsSuccess,
|
|
TierRequestsFailure,
|
|
|
|
// KMS metrics
|
|
KmsOnline,
|
|
KmsRequestsSuccess,
|
|
KmsRequestsError,
|
|
KmsRequestsFail,
|
|
KmsUptime,
|
|
|
|
// Webhook metrics
|
|
WebhookOnline,
|
|
|
|
// API rejection metrics
|
|
ApiRejectedAuthTotal,
|
|
ApiRejectedHeaderTotal,
|
|
ApiRejectedTimestampTotal,
|
|
ApiRejectedInvalidTotal,
|
|
|
|
//API request metrics
|
|
ApiRequestsWaitingTotal,
|
|
ApiRequestsIncomingTotal,
|
|
ApiRequestsInFlightTotal,
|
|
ApiRequestsTotal,
|
|
ApiRequestsErrorsTotal,
|
|
ApiRequests5xxErrorsTotal,
|
|
ApiRequests4xxErrorsTotal,
|
|
ApiRequestsCanceledTotal,
|
|
|
|
// API distribution metrics
|
|
ApiRequestsTTFBSecondsDistribution,
|
|
|
|
// API traffic metrics
|
|
ApiTrafficSentBytes,
|
|
ApiTrafficRecvBytes,
|
|
|
|
// Audit metrics
|
|
AuditFailedMessages,
|
|
AuditTargetQueueLength,
|
|
AuditTotalMessages,
|
|
|
|
// Metrics related to cluster configurations
|
|
ConfigRRSParity,
|
|
ConfigStandardParity,
|
|
|
|
// Erasure coding set related metrics
|
|
ErasureSetOverallWriteQuorum,
|
|
ErasureSetOverallHealth,
|
|
ErasureSetReadQuorum,
|
|
ErasureSetWriteQuorum,
|
|
ErasureSetOnlineDrivesCount,
|
|
ErasureSetHealingDrivesCount,
|
|
ErasureSetHealth,
|
|
ErasureSetReadTolerance,
|
|
ErasureSetWriteTolerance,
|
|
ErasureSetReadHealth,
|
|
ErasureSetWriteHealth,
|
|
|
|
// Cluster health-related metrics
|
|
HealthDrivesOfflineCount,
|
|
HealthDrivesOnlineCount,
|
|
HealthDrivesCount,
|
|
|
|
// IAM-related metrics
|
|
LastSyncDurationMillis,
|
|
PluginAuthnServiceFailedRequestsMinute,
|
|
PluginAuthnServiceLastFailSeconds,
|
|
PluginAuthnServiceLastSuccSeconds,
|
|
PluginAuthnServiceSuccAvgRttMsMinute,
|
|
PluginAuthnServiceSuccMaxRttMsMinute,
|
|
PluginAuthnServiceTotalRequestsMinute,
|
|
SinceLastSyncMillis,
|
|
SyncFailures,
|
|
SyncSuccesses,
|
|
|
|
// Notify relevant metrics
|
|
NotificationCurrentSendInProgress,
|
|
NotificationEventsErrorsTotal,
|
|
NotificationEventsSentTotal,
|
|
NotificationEventsSkippedTotal,
|
|
|
|
// Metrics related to the usage of cluster objects
|
|
UsageSinceLastUpdateSeconds,
|
|
UsageTotalBytes,
|
|
UsageObjectsCount,
|
|
UsageVersionsCount,
|
|
UsageDeleteMarkersCount,
|
|
UsageBucketsCount,
|
|
UsageSizeDistribution,
|
|
UsageVersionCountDistribution,
|
|
|
|
// Metrics related to bucket usage
|
|
UsageBucketQuotaTotalBytes,
|
|
UsageBucketTotalBytes,
|
|
UsageBucketObjectsCount,
|
|
UsageBucketVersionsCount,
|
|
UsageBucketDeleteMarkersCount,
|
|
UsageBucketObjectSizeDistribution,
|
|
UsageBucketObjectVersionCountDistribution,
|
|
|
|
// ILM-related metrics
|
|
IlmExpiryPendingTasks,
|
|
IlmTransitionActiveTasks,
|
|
IlmTransitionPendingTasks,
|
|
IlmTransitionMissedImmediateTasks,
|
|
IlmVersionsScanned,
|
|
|
|
// Webhook logs
|
|
WebhookQueueLength,
|
|
WebhookTotalMessages,
|
|
WebhookFailedMessages,
|
|
|
|
// Copy the relevant metrics
|
|
ReplicationAverageActiveWorkers,
|
|
ReplicationAverageQueuedBytes,
|
|
ReplicationAverageQueuedCount,
|
|
ReplicationAverageDataTransferRate,
|
|
ReplicationCurrentActiveWorkers,
|
|
ReplicationCurrentDataTransferRate,
|
|
ReplicationLastMinuteQueuedBytes,
|
|
ReplicationLastMinuteQueuedCount,
|
|
ReplicationMaxActiveWorkers,
|
|
ReplicationMaxQueuedBytes,
|
|
ReplicationMaxQueuedCount,
|
|
ReplicationMaxDataTransferRate,
|
|
ReplicationRecentBacklogCount,
|
|
|
|
// Scanner-related metrics
|
|
ScannerBucketScansFinished,
|
|
ScannerBucketScansStarted,
|
|
ScannerDirectoriesScanned,
|
|
ScannerObjectsScanned,
|
|
ScannerVersionsScanned,
|
|
ScannerLastActivitySeconds,
|
|
|
|
// CPU system-related metrics
|
|
SysCPUAvgIdle,
|
|
SysCPUAvgIOWait,
|
|
SysCPULoad,
|
|
SysCPULoadPerc,
|
|
SysCPUNice,
|
|
SysCPUSteal,
|
|
SysCPUSystem,
|
|
SysCPUUser,
|
|
|
|
// Drive-related metrics
|
|
DriveUsedBytes,
|
|
DriveFreeBytes,
|
|
DriveTotalBytes,
|
|
DriveUsedInodes,
|
|
DriveFreeInodes,
|
|
DriveTotalInodes,
|
|
DriveTimeoutErrorsTotal,
|
|
DriveIOErrorsTotal,
|
|
DriveAvailabilityErrorsTotal,
|
|
DriveWaitingIO,
|
|
DriveAPILatencyMicros,
|
|
DriveHealth,
|
|
|
|
DriveOfflineCount,
|
|
DriveOnlineCount,
|
|
DriveCount,
|
|
|
|
// iostat related metrics
|
|
DriveReadsPerSec,
|
|
DriveReadsKBPerSec,
|
|
DriveReadsAwait,
|
|
DriveWritesPerSec,
|
|
DriveWritesKBPerSec,
|
|
DriveWritesAwait,
|
|
DrivePercUtil,
|
|
|
|
// Memory-related metrics
|
|
MemTotal,
|
|
MemUsed,
|
|
MemUsedPerc,
|
|
MemFree,
|
|
MemBuffers,
|
|
MemCache,
|
|
MemShared,
|
|
MemAvailable,
|
|
|
|
// Network-related metrics
|
|
InternodeErrorsTotal,
|
|
InternodeDialErrorsTotal,
|
|
InternodeDialAvgTimeNanos,
|
|
InternodeSentBytesTotal,
|
|
InternodeRecvBytesTotal,
|
|
|
|
// Process-related metrics
|
|
ProcessLocksReadTotal,
|
|
ProcessLocksWriteTotal,
|
|
ProcessCPUTotalSeconds,
|
|
ProcessGoRoutineTotal,
|
|
ProcessIORCharBytes,
|
|
ProcessIOReadBytes,
|
|
ProcessIOWCharBytes,
|
|
ProcessIOWriteBytes,
|
|
ProcessStartTimeSeconds,
|
|
ProcessUptimeSeconds,
|
|
ProcessFileDescriptorLimitTotal,
|
|
ProcessFileDescriptorOpenTotal,
|
|
ProcessSyscallReadTotal,
|
|
ProcessSyscallWriteTotal,
|
|
ProcessResidentMemoryBytes,
|
|
ProcessVirtualMemoryBytes,
|
|
ProcessVirtualMemoryMaxBytes,
|
|
|
|
// Custom metrics
|
|
Custom(String),
|
|
}
|
|
|
|
impl MetricName {
|
|
#[allow(dead_code)]
|
|
pub fn as_str(&self) -> String {
|
|
match self {
|
|
Self::AuthTotal => "auth_total".to_string(),
|
|
Self::CanceledTotal => "canceled_total".to_string(),
|
|
Self::ErrorsTotal => "errors_total".to_string(),
|
|
Self::HeaderTotal => "header_total".to_string(),
|
|
Self::HealTotal => "heal_total".to_string(),
|
|
Self::HitsTotal => "hits_total".to_string(),
|
|
Self::InflightTotal => "inflight_total".to_string(),
|
|
Self::InvalidTotal => "invalid_total".to_string(),
|
|
Self::LimitTotal => "limit_total".to_string(),
|
|
Self::MissedTotal => "missed_total".to_string(),
|
|
Self::WaitingTotal => "waiting_total".to_string(),
|
|
Self::IncomingTotal => "incoming_total".to_string(),
|
|
Self::ObjectTotal => "object_total".to_string(),
|
|
Self::VersionTotal => "version_total".to_string(),
|
|
Self::DeleteMarkerTotal => "deletemarker_total".to_string(),
|
|
Self::OfflineTotal => "offline_total".to_string(),
|
|
Self::OnlineTotal => "online_total".to_string(),
|
|
Self::OpenTotal => "open_total".to_string(),
|
|
Self::ReadTotal => "read_total".to_string(),
|
|
Self::TimestampTotal => "timestamp_total".to_string(),
|
|
Self::WriteTotal => "write_total".to_string(),
|
|
Self::Total => "total".to_string(),
|
|
Self::FreeInodes => "free_inodes".to_string(),
|
|
|
|
Self::LastMinFailedCount => "last_minute_failed_count".to_string(),
|
|
Self::LastMinFailedBytes => "last_minute_failed_bytes".to_string(),
|
|
Self::LastHourFailedCount => "last_hour_failed_count".to_string(),
|
|
Self::LastHourFailedBytes => "last_hour_failed_bytes".to_string(),
|
|
Self::TotalFailedCount => "total_failed_count".to_string(),
|
|
Self::TotalFailedBytes => "total_failed_bytes".to_string(),
|
|
|
|
Self::CurrActiveWorkers => "current_active_workers".to_string(),
|
|
Self::AvgActiveWorkers => "average_active_workers".to_string(),
|
|
Self::MaxActiveWorkers => "max_active_workers".to_string(),
|
|
Self::RecentBacklogCount => "recent_backlog_count".to_string(),
|
|
Self::CurrInQueueCount => "last_minute_queued_count".to_string(),
|
|
Self::CurrInQueueBytes => "last_minute_queued_bytes".to_string(),
|
|
Self::ReceivedCount => "received_count".to_string(),
|
|
Self::SentCount => "sent_count".to_string(),
|
|
Self::CurrTransferRate => "current_transfer_rate".to_string(),
|
|
Self::AvgTransferRate => "average_transfer_rate".to_string(),
|
|
Self::MaxTransferRate => "max_transfer_rate".to_string(),
|
|
Self::CredentialErrors => "credential_errors".to_string(),
|
|
|
|
Self::CurrLinkLatency => "current_link_latency_ms".to_string(),
|
|
Self::AvgLinkLatency => "average_link_latency_ms".to_string(),
|
|
Self::MaxLinkLatency => "max_link_latency_ms".to_string(),
|
|
|
|
Self::LinkOnline => "link_online".to_string(),
|
|
Self::LinkOfflineDuration => "link_offline_duration_seconds".to_string(),
|
|
Self::LinkDowntimeTotalDuration => "link_downtime_duration_seconds".to_string(),
|
|
|
|
Self::AvgInQueueCount => "average_queued_count".to_string(),
|
|
Self::AvgInQueueBytes => "average_queued_bytes".to_string(),
|
|
Self::MaxInQueueCount => "max_queued_count".to_string(),
|
|
Self::MaxInQueueBytes => "max_queued_bytes".to_string(),
|
|
|
|
Self::ProxiedGetRequestsTotal => "proxied_get_requests_total".to_string(),
|
|
Self::ProxiedHeadRequestsTotal => "proxied_head_requests_total".to_string(),
|
|
Self::ProxiedPutTaggingRequestsTotal => "proxied_put_tagging_requests_total".to_string(),
|
|
Self::ProxiedGetTaggingRequestsTotal => "proxied_get_tagging_requests_total".to_string(),
|
|
Self::ProxiedDeleteTaggingRequestsTotal => "proxied_delete_tagging_requests_total".to_string(),
|
|
Self::ProxiedGetRequestsFailures => "proxied_get_requests_failures".to_string(),
|
|
Self::ProxiedHeadRequestsFailures => "proxied_head_requests_failures".to_string(),
|
|
Self::ProxiedPutTaggingRequestFailures => "proxied_put_tagging_requests_failures".to_string(),
|
|
Self::ProxiedGetTaggingRequestFailures => "proxied_get_tagging_requests_failures".to_string(),
|
|
Self::ProxiedDeleteTaggingRequestFailures => "proxied_delete_tagging_requests_failures".to_string(),
|
|
|
|
Self::FreeBytes => "free_bytes".to_string(),
|
|
Self::ReadBytes => "read_bytes".to_string(),
|
|
Self::RcharBytes => "rchar_bytes".to_string(),
|
|
Self::ReceivedBytes => "received_bytes".to_string(),
|
|
Self::LatencyMilliSec => "latency_ms".to_string(),
|
|
Self::SentBytes => "sent_bytes".to_string(),
|
|
Self::TotalBytes => "total_bytes".to_string(),
|
|
Self::UsedBytes => "used_bytes".to_string(),
|
|
Self::WriteBytes => "write_bytes".to_string(),
|
|
Self::WcharBytes => "wchar_bytes".to_string(),
|
|
|
|
Self::LatencyMicroSec => "latency_us".to_string(),
|
|
Self::LatencyNanoSec => "latency_ns".to_string(),
|
|
|
|
Self::CommitInfo => "commit_info".to_string(),
|
|
Self::UsageInfo => "usage_info".to_string(),
|
|
Self::VersionInfo => "version_info".to_string(),
|
|
|
|
Self::SizeDistribution => "size_distribution".to_string(),
|
|
Self::VersionDistribution => "version_distribution".to_string(),
|
|
Self::TtfbDistribution => "seconds_distribution".to_string(),
|
|
Self::TtlbDistribution => "ttlb_seconds_distribution".to_string(),
|
|
|
|
Self::LastActivityTime => "last_activity_nano_seconds".to_string(),
|
|
Self::StartTime => "starttime_seconds".to_string(),
|
|
Self::UpTime => "uptime_seconds".to_string(),
|
|
Self::Memory => "resident_memory_bytes".to_string(),
|
|
Self::Vmemory => "virtual_memory_bytes".to_string(),
|
|
Self::Cpu => "cpu_total_seconds".to_string(),
|
|
|
|
Self::ExpiryMissedTasks => "expiry_missed_tasks".to_string(),
|
|
Self::ExpiryMissedFreeVersions => "expiry_missed_freeversions".to_string(),
|
|
Self::ExpiryMissedTierJournalTasks => "expiry_missed_tierjournal_tasks".to_string(),
|
|
Self::ExpiryNumWorkers => "expiry_num_workers".to_string(),
|
|
Self::TransitionMissedTasks => "transition_missed_immediate_tasks".to_string(),
|
|
|
|
Self::TransitionedBytes => "transitioned_bytes".to_string(),
|
|
Self::TransitionedObjects => "transitioned_objects".to_string(),
|
|
Self::TransitionedVersions => "transitioned_versions".to_string(),
|
|
|
|
Self::TierRequestsSuccess => "requests_success".to_string(),
|
|
Self::TierRequestsFailure => "requests_failure".to_string(),
|
|
|
|
Self::KmsOnline => "online".to_string(),
|
|
Self::KmsRequestsSuccess => "request_success".to_string(),
|
|
Self::KmsRequestsError => "request_error".to_string(),
|
|
Self::KmsRequestsFail => "request_failure".to_string(),
|
|
Self::KmsUptime => "uptime".to_string(),
|
|
|
|
Self::WebhookOnline => "online".to_string(),
|
|
|
|
Self::ApiRejectedAuthTotal => "rejected_auth_total".to_string(),
|
|
Self::ApiRejectedHeaderTotal => "rejected_header_total".to_string(),
|
|
Self::ApiRejectedTimestampTotal => "rejected_timestamp_total".to_string(),
|
|
Self::ApiRejectedInvalidTotal => "rejected_invalid_total".to_string(),
|
|
|
|
Self::ApiRequestsWaitingTotal => "waiting_total".to_string(),
|
|
Self::ApiRequestsIncomingTotal => "incoming_total".to_string(),
|
|
Self::ApiRequestsInFlightTotal => "inflight_total".to_string(),
|
|
Self::ApiRequestsTotal => "total".to_string(),
|
|
Self::ApiRequestsErrorsTotal => "errors_total".to_string(),
|
|
Self::ApiRequests5xxErrorsTotal => "5xx_errors_total".to_string(),
|
|
Self::ApiRequests4xxErrorsTotal => "4xx_errors_total".to_string(),
|
|
Self::ApiRequestsCanceledTotal => "canceled_total".to_string(),
|
|
|
|
Self::ApiRequestsTTFBSecondsDistribution => "ttfb_seconds_distribution".to_string(),
|
|
|
|
Self::ApiTrafficSentBytes => "traffic_sent_bytes".to_string(),
|
|
Self::ApiTrafficRecvBytes => "traffic_received_bytes".to_string(),
|
|
|
|
Self::AuditFailedMessages => "failed_messages".to_string(),
|
|
Self::AuditTargetQueueLength => "target_queue_length".to_string(),
|
|
Self::AuditTotalMessages => "total_messages".to_string(),
|
|
|
|
// metrics related to cluster configurations
|
|
Self::ConfigRRSParity => "rrs_parity".to_string(),
|
|
Self::ConfigStandardParity => "standard_parity".to_string(),
|
|
|
|
// Erasure coding set related metrics
|
|
Self::ErasureSetOverallWriteQuorum => "overall_write_quorum".to_string(),
|
|
Self::ErasureSetOverallHealth => "overall_health".to_string(),
|
|
Self::ErasureSetReadQuorum => "read_quorum".to_string(),
|
|
Self::ErasureSetWriteQuorum => "write_quorum".to_string(),
|
|
Self::ErasureSetOnlineDrivesCount => "online_drives_count".to_string(),
|
|
Self::ErasureSetHealingDrivesCount => "healing_drives_count".to_string(),
|
|
Self::ErasureSetHealth => "health".to_string(),
|
|
Self::ErasureSetReadTolerance => "read_tolerance".to_string(),
|
|
Self::ErasureSetWriteTolerance => "write_tolerance".to_string(),
|
|
Self::ErasureSetReadHealth => "read_health".to_string(),
|
|
Self::ErasureSetWriteHealth => "write_health".to_string(),
|
|
|
|
// Cluster health-related metrics
|
|
Self::HealthDrivesOfflineCount => "drives_offline_count".to_string(),
|
|
Self::HealthDrivesOnlineCount => "drives_online_count".to_string(),
|
|
Self::HealthDrivesCount => "drives_count".to_string(),
|
|
|
|
// IAM-related metrics
|
|
Self::LastSyncDurationMillis => "last_sync_duration_millis".to_string(),
|
|
Self::PluginAuthnServiceFailedRequestsMinute => "plugin_authn_service_failed_requests_minute".to_string(),
|
|
Self::PluginAuthnServiceLastFailSeconds => "plugin_authn_service_last_fail_seconds".to_string(),
|
|
Self::PluginAuthnServiceLastSuccSeconds => "plugin_authn_service_last_succ_seconds".to_string(),
|
|
Self::PluginAuthnServiceSuccAvgRttMsMinute => "plugin_authn_service_succ_avg_rtt_ms_minute".to_string(),
|
|
Self::PluginAuthnServiceSuccMaxRttMsMinute => "plugin_authn_service_succ_max_rtt_ms_minute".to_string(),
|
|
Self::PluginAuthnServiceTotalRequestsMinute => "plugin_authn_service_total_requests_minute".to_string(),
|
|
Self::SinceLastSyncMillis => "since_last_sync_millis".to_string(),
|
|
Self::SyncFailures => "sync_failures".to_string(),
|
|
Self::SyncSuccesses => "sync_successes".to_string(),
|
|
|
|
// Notify relevant metrics
|
|
Self::NotificationCurrentSendInProgress => "current_send_in_progress".to_string(),
|
|
Self::NotificationEventsErrorsTotal => "events_errors_total".to_string(),
|
|
Self::NotificationEventsSentTotal => "events_sent_total".to_string(),
|
|
Self::NotificationEventsSkippedTotal => "events_skipped_total".to_string(),
|
|
|
|
// Metrics related to the usage of cluster objects
|
|
Self::UsageSinceLastUpdateSeconds => "since_last_update_seconds".to_string(),
|
|
Self::UsageTotalBytes => "total_bytes".to_string(),
|
|
Self::UsageObjectsCount => "count".to_string(),
|
|
Self::UsageVersionsCount => "versions_count".to_string(),
|
|
Self::UsageDeleteMarkersCount => "delete_markers_count".to_string(),
|
|
Self::UsageBucketsCount => "buckets_count".to_string(),
|
|
Self::UsageSizeDistribution => "size_distribution".to_string(),
|
|
Self::UsageVersionCountDistribution => "version_count_distribution".to_string(),
|
|
|
|
// Metrics related to bucket usage
|
|
Self::UsageBucketQuotaTotalBytes => "quota_total_bytes".to_string(),
|
|
Self::UsageBucketTotalBytes => "total_bytes".to_string(),
|
|
Self::UsageBucketObjectsCount => "objects_count".to_string(),
|
|
Self::UsageBucketVersionsCount => "versions_count".to_string(),
|
|
Self::UsageBucketDeleteMarkersCount => "delete_markers_count".to_string(),
|
|
Self::UsageBucketObjectSizeDistribution => "object_size_distribution".to_string(),
|
|
Self::UsageBucketObjectVersionCountDistribution => "object_version_count_distribution".to_string(),
|
|
|
|
// ILM-related metrics
|
|
Self::IlmExpiryPendingTasks => "expiry_pending_tasks".to_string(),
|
|
Self::IlmTransitionActiveTasks => "transition_active_tasks".to_string(),
|
|
Self::IlmTransitionPendingTasks => "transition_pending_tasks".to_string(),
|
|
Self::IlmTransitionMissedImmediateTasks => "transition_missed_immediate_tasks".to_string(),
|
|
Self::IlmVersionsScanned => "versions_scanned".to_string(),
|
|
|
|
// Webhook logs
|
|
Self::WebhookQueueLength => "queue_length".to_string(),
|
|
Self::WebhookTotalMessages => "total_messages".to_string(),
|
|
Self::WebhookFailedMessages => "failed_messages".to_string(),
|
|
|
|
// Copy the relevant metrics
|
|
Self::ReplicationAverageActiveWorkers => "average_active_workers".to_string(),
|
|
Self::ReplicationAverageQueuedBytes => "average_queued_bytes".to_string(),
|
|
Self::ReplicationAverageQueuedCount => "average_queued_count".to_string(),
|
|
Self::ReplicationAverageDataTransferRate => "average_data_transfer_rate".to_string(),
|
|
Self::ReplicationCurrentActiveWorkers => "current_active_workers".to_string(),
|
|
Self::ReplicationCurrentDataTransferRate => "current_data_transfer_rate".to_string(),
|
|
Self::ReplicationLastMinuteQueuedBytes => "last_minute_queued_bytes".to_string(),
|
|
Self::ReplicationLastMinuteQueuedCount => "last_minute_queued_count".to_string(),
|
|
Self::ReplicationMaxActiveWorkers => "max_active_workers".to_string(),
|
|
Self::ReplicationMaxQueuedBytes => "max_queued_bytes".to_string(),
|
|
Self::ReplicationMaxQueuedCount => "max_queued_count".to_string(),
|
|
Self::ReplicationMaxDataTransferRate => "max_data_transfer_rate".to_string(),
|
|
Self::ReplicationRecentBacklogCount => "recent_backlog_count".to_string(),
|
|
|
|
// Scanner-related metrics
|
|
Self::ScannerBucketScansFinished => "bucket_scans_finished".to_string(),
|
|
Self::ScannerBucketScansStarted => "bucket_scans_started".to_string(),
|
|
Self::ScannerDirectoriesScanned => "directories_scanned".to_string(),
|
|
Self::ScannerObjectsScanned => "objects_scanned".to_string(),
|
|
Self::ScannerVersionsScanned => "versions_scanned".to_string(),
|
|
Self::ScannerLastActivitySeconds => "last_activity_seconds".to_string(),
|
|
|
|
// CPU system-related metrics
|
|
Self::SysCPUAvgIdle => "avg_idle".to_string(),
|
|
Self::SysCPUAvgIOWait => "avg_iowait".to_string(),
|
|
Self::SysCPULoad => "load".to_string(),
|
|
Self::SysCPULoadPerc => "load_perc".to_string(),
|
|
Self::SysCPUNice => "nice".to_string(),
|
|
Self::SysCPUSteal => "steal".to_string(),
|
|
Self::SysCPUSystem => "system".to_string(),
|
|
Self::SysCPUUser => "user".to_string(),
|
|
|
|
// Drive-related metrics
|
|
Self::DriveUsedBytes => "used_bytes".to_string(),
|
|
Self::DriveFreeBytes => "free_bytes".to_string(),
|
|
Self::DriveTotalBytes => "total_bytes".to_string(),
|
|
Self::DriveUsedInodes => "used_inodes".to_string(),
|
|
Self::DriveFreeInodes => "free_inodes".to_string(),
|
|
Self::DriveTotalInodes => "total_inodes".to_string(),
|
|
Self::DriveTimeoutErrorsTotal => "timeout_errors_total".to_string(),
|
|
Self::DriveIOErrorsTotal => "io_errors_total".to_string(),
|
|
Self::DriveAvailabilityErrorsTotal => "availability_errors_total".to_string(),
|
|
Self::DriveWaitingIO => "waiting_io".to_string(),
|
|
Self::DriveAPILatencyMicros => "api_latency_micros".to_string(),
|
|
Self::DriveHealth => "health".to_string(),
|
|
|
|
Self::DriveOfflineCount => "offline_count".to_string(),
|
|
Self::DriveOnlineCount => "online_count".to_string(),
|
|
Self::DriveCount => "count".to_string(),
|
|
|
|
// iostat related metrics
|
|
Self::DriveReadsPerSec => "reads_per_sec".to_string(),
|
|
Self::DriveReadsKBPerSec => "reads_kb_per_sec".to_string(),
|
|
Self::DriveReadsAwait => "reads_await".to_string(),
|
|
Self::DriveWritesPerSec => "writes_per_sec".to_string(),
|
|
Self::DriveWritesKBPerSec => "writes_kb_per_sec".to_string(),
|
|
Self::DriveWritesAwait => "writes_await".to_string(),
|
|
Self::DrivePercUtil => "perc_util".to_string(),
|
|
|
|
// Memory-related metrics
|
|
Self::MemTotal => "total".to_string(),
|
|
Self::MemUsed => "used".to_string(),
|
|
Self::MemUsedPerc => "used_perc".to_string(),
|
|
Self::MemFree => "free".to_string(),
|
|
Self::MemBuffers => "buffers".to_string(),
|
|
Self::MemCache => "cache".to_string(),
|
|
Self::MemShared => "shared".to_string(),
|
|
Self::MemAvailable => "available".to_string(),
|
|
|
|
// Network-related metrics
|
|
Self::InternodeErrorsTotal => "errors_total".to_string(),
|
|
Self::InternodeDialErrorsTotal => "dial_errors_total".to_string(),
|
|
Self::InternodeDialAvgTimeNanos => "dial_avg_time_nanos".to_string(),
|
|
Self::InternodeSentBytesTotal => "sent_bytes_total".to_string(),
|
|
Self::InternodeRecvBytesTotal => "recv_bytes_total".to_string(),
|
|
|
|
// Process-related metrics
|
|
Self::ProcessLocksReadTotal => "locks_read_total".to_string(),
|
|
Self::ProcessLocksWriteTotal => "locks_write_total".to_string(),
|
|
Self::ProcessCPUTotalSeconds => "cpu_total_seconds".to_string(),
|
|
Self::ProcessGoRoutineTotal => "go_routine_total".to_string(),
|
|
Self::ProcessIORCharBytes => "io_rchar_bytes".to_string(),
|
|
Self::ProcessIOReadBytes => "io_read_bytes".to_string(),
|
|
Self::ProcessIOWCharBytes => "io_wchar_bytes".to_string(),
|
|
Self::ProcessIOWriteBytes => "io_write_bytes".to_string(),
|
|
Self::ProcessStartTimeSeconds => "start_time_seconds".to_string(),
|
|
Self::ProcessUptimeSeconds => "uptime_seconds".to_string(),
|
|
Self::ProcessFileDescriptorLimitTotal => "file_descriptor_limit_total".to_string(),
|
|
Self::ProcessFileDescriptorOpenTotal => "file_descriptor_open_total".to_string(),
|
|
Self::ProcessSyscallReadTotal => "syscall_read_total".to_string(),
|
|
Self::ProcessSyscallWriteTotal => "syscall_write_total".to_string(),
|
|
Self::ProcessResidentMemoryBytes => "resident_memory_bytes".to_string(),
|
|
Self::ProcessVirtualMemoryBytes => "virtual_memory_bytes".to_string(),
|
|
Self::ProcessVirtualMemoryMaxBytes => "virtual_memory_max_bytes".to_string(),
|
|
|
|
Self::Custom(name) => name.clone(),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl From<String> for MetricName {
|
|
fn from(s: String) -> Self {
|
|
Self::Custom(s)
|
|
}
|
|
}
|
|
|
|
impl From<&str> for MetricName {
|
|
fn from(s: &str) -> Self {
|
|
Self::Custom(s.to_string())
|
|
}
|
|
}
|