Skip to main content

Metrics Collection Settings

You can customize how MetricsHub collects and processes metrics at different levels: globally, per resource group, or per resource.

Scheduling and Timing

Collection Period

MetricsHub collects metrics every minute by default. Use collectPeriod to change this:

# Global
collectPeriod: 2m

# Per resource
resources:
myHost1:
collectPeriod: 1m30s
warning

Collecting too frequently increases CPU load.

Discovery Cycle

MetricsHub runs discovery every 30 collection cycles by default. Use discoveryCycle to change this:

# Global
discoveryCycle: 15

# Per resource
resources:
myHost1:
discoveryCycle: 5
warning

Running a discovery too frequently increases CPU load.

Duration Format

All timeout and period values support these units:

UnitDescriptionExamples
sseconds120s
mminutes2m, 1m30s
hhours1h, 1h30m
ddays1d

Filtering

Use monitorFilters to include or exclude specific monitor types and control your telemetry volume:

# Include only specific monitors
monitorFilters: [ +enclosure, +fan, +power_supply ]

# Exclude volumes
monitorFilters: [ "!volume" ]
warning

Critical monitors (batteries, power supplies, CPUs, fans, memory) should never be excluded.

Resource Identity

Custom Hostname

You can differentiate the hostname used for collection from the one reported in metrics:

resources:
myHost1:
attributes:
host.name: reported-hostname # In metrics
protocols:
snmp:
hostname: actual-ip-address # For collection

FQDN Resolution

Set resolveHostnameToFqdn to true to resolve hostnames to fully qualified domain names:

# Global
resolveHostnameToFqdn: true

# Per resource
resources:
myHost1:
resolveHostnameToFqdn: true
warning

Resolution failures may change the host.name attribute and affect metric identity.

Custom Attributes

Add labels to extend the Host Resource attributes:

resources:
myHost1:
attributes:
host.name: my-host-01
host.type: win
app: Jenkins # Custom
environment: prod # Custom

Performance

Parallel Jobs

Use jobPoolSize to control concurrent job execution (default: 20):

jobPoolSize: 40
warning

Too many parallel jobs may cause OutOfMemory errors.

Sequential Mode

Use sequential to force serial execution for sensitive targets:

resources:
myHost1:
sequential: true
warning

Significantly slower. Use only when required by target system limitations.

StateSet Compression

Use stateSetCompression to control how health status metrics are reported:

stateSetCompression: suppressZeros  # Default: only report non-zero states
stateSetCompression: none # Report all states

Self-Monitoring

Set enableSelfMonitoring to true to track MetricsHub's own performance:

enableSelfMonitoring: true

When enabled, MetricsHub emits metricshub.job.duration metrics for each job.