Skip to content

Configuration Reference

This document provides a comprehensive reference for all configuration options available in the Meraki Dashboard Exporter.

Overview

The exporter can be configured using environment variables. All configuration is based on Pydantic models with built-in validation.

Environment Variable Format

Configuration follows a hierarchical structure using environment variables:

  • All settings: MERAKI_EXPORTER_{SECTION}__{SETTING}
  • Double underscore (__) separates nested configuration levels

Environment Variable Examples

# Meraki API configuration
export MERAKI_EXPORTER_MERAKI__API_KEY=your_api_key_here
export MERAKI_EXPORTER_MERAKI__ORG_ID=123456

# Logging configuration
export MERAKI_EXPORTER_LOGGING__LEVEL=INFO

# API settings
export MERAKI_EXPORTER_API__TIMEOUT=30
export MERAKI_EXPORTER_API__CONCURRENCY_LIMIT=5

Meraki Settings

Core Meraki API configuration

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_MERAKI__API_KEYSecretStr_(required)_Meraki Dashboard API key
MERAKI_EXPORTER_MERAKI__ORG_IDstr | None_(none)_Meraki organization ID. For v1 the single-organization contract applies (one poller instance = one organization): when the API key sees exactly one org it is auto-selected and org_id may be omitted; when the key sees several orgs, set org_id explicitly (startup fails fast on an ambiguous multi-org key). See discovery.py/app startup.
MERAKI_EXPORTER_MERAKI__API_BASE_URLstrhttps://api.meraki.com/api/v1Meraki API base URL (use regional endpoints if needed)
MERAKI_EXPORTER_MERAKI__ALLOW_CUSTOM_API_BASE_URLboolFalseExplicitly allow an HTTPS Meraki API base URL outside the known regional origins

Logging Settings

Logging configuration

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_LOGGING__LEVELstrINFOLogging level (case-insensitive; normalised to upper-case)
MERAKI_EXPORTER_LOGGING__LOG_FORMATstrjsonStructured-log renderer: 'json' (default) or 'logfmt'. JSON is the default because the primary sinks (Loki/ELK/CloudWatch) parse it cheaply and the multi-line exception field becomes valid nested JSON; set 'logfmt' for human-readable console output (#640).

API Settings

Configuration for Meraki API interactions

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_API__MAX_RETRIESint3Maximum number of retries for API requests (min: 0, max: 10)
MERAKI_EXPORTER_API__TIMEOUTint30Per-request API timeout in seconds (SDK single_request_timeout). Note this applies to EACH page request, so a total_pages='all' bulk fetch may make many such requests; the overall fetch is additionally bounded by per_fetch_deadline_seconds. Reviewed for large-org bulk fetches (#556): kept at 30s (raise only if large-org page latencies are observed to exceed it). (min: 10, max: 300)
MERAKI_EXPORTER_API__CONCURRENCY_LIMITint5Max in-flight sub-requests within a SINGLE collector's fan-out (the ManagedTaskGroup bound in device/network_health/organization collectors). This caps concurrency BREADTH (in-flight memory + SDK executor-thread pressure), which is distinct from the client-side AIMD rate limiter that caps request RATE: the limiter paces how fast requests leave, this caps how many are outstanding at once. Both are needed. Not to be confused with collectors.max_concurrent_collectors, which bounds how many collector loops run at once globally (#636). (min: 1, max: 20)
MERAKI_EXPORTER_API__BATCH_SIZEint20Default batch size for API operations (min: 1, max: 100)
MERAKI_EXPORTER_API__DEVICE_BATCH_SIZEint20Batch size for device operations (min: 1, max: 100)
MERAKI_EXPORTER_API__NETWORK_BATCH_SIZEint30Batch size for network operations (min: 1, max: 100)
MERAKI_EXPORTER_API__CLIENT_BATCH_SIZEint20Batch size for client operations (e.g., MR client metrics) (min: 1, max: 100)
MERAKI_EXPORTER_API__BATCH_DELAYfloat0.5Delay between batches in seconds (min: 0.0, max: 5.0)
MERAKI_EXPORTER_API__RATE_LIMIT_RETRY_WAITint5Wait time in seconds when rate limited (min: 1, max: 60)
MERAKI_EXPORTER_API__ACTION_BATCH_RETRY_WAITint10Wait time for action batch retries (min: 1, max: 60)
MERAKI_EXPORTER_API__VALIDATE_KWARGSboolFalseWhen True, the Meraki SDK logs warnings if API methods are called with unrecognized kwargs. Recommended for dev/CI; off by default in production.
MERAKI_EXPORTER_API__REQUESTS_PROXYstr | None_(none)_HTTPS proxy URL for Meraki API requests (SDK requests_proxy); when unset the requests HTTPS_PROXY/NO_PROXY env vars still apply.
MERAKI_EXPORTER_API__CERTIFICATE_PATHstr | None_(none)_Path to a custom CA bundle for verifying the Meraki API TLS cert (SDK certificate_path); mount into read-only containers as a volume.
MERAKI_EXPORTER_API__RATE_LIMIT_ENABLEDboolTrueEnable client-side rate limiting to smooth API calls
MERAKI_EXPORTER_API__RATE_LIMIT_REQUESTS_PER_SECONDfloat10.0Target requests per second per organization (min: 1.0, max: 50.0)
MERAKI_EXPORTER_API__RATE_LIMIT_BURSTint10Token bucket burst capacity per organization. Defaults to Meraki's documented +10 first-second allowance; refill supplies the sustained rate separately. (min: 1, max: 100)
MERAKI_EXPORTER_API__RATE_LIMIT_SHARED_FRACTIONfloat0.8Fraction of the org API call budget this exporter is allowed to consume. Defaults to 0.8 so ~20% headroom is left for other consumers of the same org budget (dashboards, other tools, humans); set to 1.0 to claim the whole budget (#550). (min: 0.1, max: 1.0)
MERAKI_EXPORTER_API__RATE_LIMIT_JITTER_RATIOfloat0.1Jitter ratio applied to client-side rate limiter waits (min: 0.0, max: 0.5)
MERAKI_EXPORTER_API__SMOOTHING_ENABLEDboolTrueSpread batch work across the collection interval
MERAKI_EXPORTER_API__SMOOTHING_WINDOW_RATIOfloat0.8Fraction of the collection interval used for smoothing (min: 0.1, max: 1.0)
MERAKI_EXPORTER_API__SMOOTHING_MIN_BATCH_DELAYfloat1.0Minimum delay between batches when smoothing (min: 0.0, max: 60.0)
MERAKI_EXPORTER_API__SMOOTHING_MAX_BATCH_DELAYfloat15.0Maximum delay between batches when smoothing (min: 0.0, max: 300.0)
MERAKI_EXPORTER_API__MS_PORT_STATUS_USE_ORG_ENDPOINTboolTrueUse org-level switch port status endpoint for MS status metrics
MERAKI_EXPORTER_API__MS_PORT_USAGE_INTERVALint600Minimum seconds between per-switch port usage/POE refreshes (min: 0, max: 3600)
MERAKI_EXPORTER_API__MS_PACKET_STATS_INTERVALint600Minimum seconds between per-switch packet stats refreshes (min: 0, max: 3600)
MERAKI_EXPORTER_API__CLIENT_APP_USAGE_INTERVALint600Minimum seconds between client application usage refreshes (min: 0, max: 3600)
MERAKI_EXPORTER_API__CLIENT_SIGNAL_QUALITY_INTERVALint600Minimum seconds between per-client wireless signal-quality refreshes (min: 0, max: 3600)
MERAKI_EXPORTER_API__CLIENT_SIGNAL_QUALITY_MAX_CLIENTSint200Maximum wireless clients queried for signal quality per network per cycle (0 disables the cap). Bounds the sequential per-client API fan-out. (min: 0, max: 5000)
MERAKI_EXPORTER_API__RETRY_AFTER_MAX_SECONDSint60Upper bound (seconds) honoured for a server-sent Retry-After header when backing off a throttled (429/503) request. Caps pathological Retry-After values so a single throttled request cannot stall a collection cycle indefinitely. (min: 1, max: 3600)
MERAKI_EXPORTER_API__EXECUTOR_WORKERSint10Size of the thread pool used to run the synchronous Meraki SDK off the event loop (the asyncio.to_thread executor). Bounds the number of concurrent blocking SDK calls independently of the per-collector API concurrency limit. (min: 1, max: 100)
MERAKI_EXPORTER_API__PER_FETCH_DEADLINE_SECONDSint120Wall-clock deadline (seconds) for a single logical fetch, including all paginated page requests made under total_pages='all'. Sits between the SDK per-request timeout (see 'timeout') and the per-collector timeout so a slow bulk fetch fails fast instead of consuming the whole collector budget. (min: 1, max: 600)

Server Settings

HTTP server configuration for the metrics endpoint

Webhook Settings

Webhook receiver configuration

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_SERVER__HOSTstr0.0.0.0Host to bind the exporter to
MERAKI_EXPORTER_SERVER__PORTint9099Port to bind the exporter to (min: 1, max: 65535)
MERAKI_EXPORTER_SERVER__API_TOKENSecretStr | None_(none)_Bearer token required to enable state-changing POST control endpoints (/api/collectors/trigger, /api/clients/clear-dns-cache). When unset (default) these endpoints fail closed with HTTP 401 and their UI controls are disabled. When set, the browser controls are hidden and requests must present 'Authorization: Bearer '.
MERAKI_EXPORTER_SERVER__UI_ENABLEDboolTrueWhen false, sensitive GET UI/status endpoints return 404 (metrics/health/ready stay open).
Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_WEBHOOKS__ENABLEDboolFalseEnable webhook receiver endpoint
MERAKI_EXPORTER_WEBHOOKS__SHARED_SECRETSecretStr | None_(none)_Shared secret for webhook validation (recommended)
MERAKI_EXPORTER_WEBHOOKS__REQUIRE_SECRETboolTrueRequire shared secret validation (disable for testing only)
MERAKI_EXPORTER_WEBHOOKS__ALLOW_INSECUREboolFalseExplicit opt-in to run the webhook receiver enabled without require_secret; startup refuses the insecure combo unless this is true.
MERAKI_EXPORTER_WEBHOOKS__MAX_PAYLOAD_SIZEint1048576Maximum webhook payload size in bytes (min: 1024, max: 10485760)
MERAKI_EXPORTER_WEBHOOKS__FRESHNESS_WINDOW_SECONDSint300Maximum accepted webhook clock skew in seconds (min: 30, max: 3600)
MERAKI_EXPORTER_WEBHOOKS__REPLAY_CACHE_TTL_SECONDSint3600TTL in seconds for processed-webhook replay protection entries (min: 60, max: 86400)
MERAKI_EXPORTER_WEBHOOKS__REPLAY_CACHE_MAX_ENTRIESint10000Maximum processed-webhook replay protection entries (min: 100, max: 1000000)

Webhooks are received on POST /api/webhooks/meraki when enabled.

OpenTelemetry Settings

OpenTelemetry observability configuration

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_OTEL__ENABLEDboolFalseEnable OpenTelemetry tracing
MERAKI_EXPORTER_OTEL__ENDPOINTstr | None_(none)_OpenTelemetry collector endpoint (OTLP gRPC)
MERAKI_EXPORTER_OTEL__INSECUREboolTrueSend OTLP traces over an insecure (non-TLS) channel. Set False to use TLS/system-trust-store transport to the collector endpoint.
MERAKI_EXPORTER_OTEL__SERVICE_NAMEstrmeraki-dashboard-exporterService name for OpenTelemetry tracing
MERAKI_EXPORTER_OTEL__SAMPLING_RATEfloat0.1Trace sampling rate (0.0-1.0). 0 disables sampling, 1 samples every trace, values in between use ratio-based parent sampling. (min: 0.0, max: 1.0)
MERAKI_EXPORTER_OTEL__RESOURCE_ATTRIBUTESdict[str, str]{}Additional resource attributes for OpenTelemetry
MERAKI_EXPORTER_OTEL__LOGSOTelLogsSettingsenabled=False endpoint=None insecure=None include_identifiers=False events=NoneOTLP data-log emitter settings (#622); independent of tracing.
MERAKI_EXPORTER_OTEL__LOGS__ENABLEDboolFalseEnable the OTLP data-log emitter for high-cardinality per-entity product data. Independent of otel.enabled (tracing). Off by default.
MERAKI_EXPORTER_OTEL__LOGS__ENDPOINTstr | None_(none)_OTLP gRPC endpoint for data logs. When None, falls back to otel.endpoint. An endpoint must resolve (own or inherited) when logs.enabled is True.
MERAKI_EXPORTER_OTEL__LOGS__INSECUREbool | None_(none)_Send OTLP data logs over an insecure (non-TLS) channel. When None, inherits otel.insecure.
MERAKI_EXPORTER_OTEL__LOGS__INCLUDE_IDENTIFIERSboolFalsePII opt-in. When False (default), the emitter drops identifier attributes (client.mac / client.hostname / client.description) from every record; only stable IDs (client.id) are emitted. Set True to include the human-readable identifiers.
MERAKI_EXPORTER_OTEL__LOGS__EVENTSlist[str] | None_(none)_Per-data-class allowlist of built-in data-log event names (see DataLogEvent in core/otel_data_logs.py, e.g. "meraki.wireless.client.packet_loss"). None (default) enables all built-in events; an explicit list enables only the named events. Env: JSON array.
MERAKI_EXPORTER_OTEL__METRICSOTelMetricsSettingsenabled=False endpoint=None insecure=None export_interval_seconds=60 include='all' temporality='cumulative'OTLP metrics bridge settings (#313/#339); independent of tracing.
MERAKI_EXPORTER_OTEL__METRICS__ENABLEDboolFalseEnable the OTLP metrics bridge (push a periodic snapshot of the Prometheus registry via OTLP gRPC). Independent of otel.enabled (tracing) and otel.logs.enabled. Off by default; the /metrics scrape is unchanged either way.
MERAKI_EXPORTER_OTEL__METRICS__ENDPOINTstr | None_(none)_OTLP gRPC endpoint for metrics. When None, falls back to otel.endpoint. Must resolve (own or inherited) when metrics.enabled is True.
MERAKI_EXPORTER_OTEL__METRICS__INSECUREbool | None_(none)_Send OTLP metrics over an insecure (non-TLS) channel. When None, inherits otel.insecure.
MERAKI_EXPORTER_OTEL__METRICS__EXPORT_INTERVAL_SECONDSint60Seconds between registry snapshots pushed via OTLP. (min: 10, max: 3600)
MERAKI_EXPORTER_OTEL__METRICS__INCLUDEproduct | self | allallWhich telemetry plane to push, keyed on the metric-name prefix split: "product" = meraki_* excluding meraki_exporter_; "self" = everything else (meraki_exporter_ plus the process/python runtime families); "all" = both.
MERAKI_EXPORTER_OTEL__METRICS__TEMPORALITYcumulativecumulativeCounter/histogram temporality. v1 accepts only 'cumulative' (Grafana Cloud expects cumulative; prometheus_client counters are cumulative-since-start, so this is the only faithful translation).
MERAKI_EXPORTER_OTEL__CA_CERT_PATHstr | None_(none)_Path to a CA certificate (PEM) used to verify the OTLP collector's TLS certificate, shared by all three OTLP channels (traces, data logs, metrics). Paths only - no inline PEM material (#314).
MERAKI_EXPORTER_OTEL__CLIENT_CERT_PATHstr | None_(none)_Path to a client certificate (PEM) for mTLS to the OTLP collector, shared by all three OTLP channels. Must be set together with client_key_path (#314).
MERAKI_EXPORTER_OTEL__CLIENT_KEY_PATHstr | None_(none)_Path to a client private key (PEM) for mTLS to the OTLP collector, shared by all three OTLP channels. Must be set together with client_cert_path (#314).

Monitoring Settings

Internal monitoring and alerting configuration

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_MONITORING__MAX_CONSECUTIVE_FAILURESint10Maximum consecutive failures before alerting (min: 1, max: 100)
MERAKI_EXPORTER_MONITORING__HISTOGRAM_BUCKETSlist[float][0.1, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0, 60.0, 120.0, 300.0]Histogram buckets for collector duration metrics
MERAKI_EXPORTER_MONITORING__LICENSE_EXPIRATION_WARNING_DAYSint30Days before license expiration to start warning (min: 7, max: 90)
MERAKI_EXPORTER_MONITORING__METRIC_TTL_MULTIPLIERfloat2.0Multiplier for metric TTL (collection_interval * multiplier) (min: 1.0, max: 10.0)
MERAKI_EXPORTER_MONITORING__MAX_CARDINALITY_PER_COLLECTORint10000Maximum number of tracked label sets per collector before shedding oldest (min: 100, max: 1000000)
MERAKI_EXPORTER_MONITORING__LIVENESS_MAX_STALE_SECONDSint0Dead-man switch threshold. /health returns 503 once no collector has completed a successful run within this many seconds, so Kubernetes/Docker restart a wedged exporter instead of leaving it serving stale metrics. 0 (default) auto-derives the threshold as 3x the fastest solved endpoint-group interval, so a stalled fast poll trips liveness promptly while slower groups never cause false positives (the threshold widens automatically as the scheduler stretches intervals). Set a large value to effectively disable. (min: 0, max: 86400)

Collector Settings

Enable/disable specific metric collectors

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_COLLECTORS__PROFILEavailability | standard | full | None_(none)_Collection profile controlling which endpoint priorities run: availability includes priority 1, standard includes priorities 1-3, and full includes all priorities. When unset, standard is used only while the solved API demand fits the budget; over-budget fleets must choose a profile explicitly.
MERAKI_EXPORTER_COLLECTORS__ENABLED_COLLECTORSset[str]["alerts", "clients", "config", "device", "insight", "mtsensor", "mtsensoralerts", "networkhealth", "organization"]Enabled collector names
MERAKI_EXPORTER_COLLECTORS__DISABLE_COLLECTORSset[str][]Explicitly disabled collectors (overrides enabled)
MERAKI_EXPORTER_COLLECTORS__COLLECTOR_TIMEOUTint240Timeout for individual collector runs in seconds (min: 30, max: 600)
MERAKI_EXPORTER_COLLECTORS__MAX_CONCURRENT_COLLECTORSint5Max number of collectors whose group-clocked loops may be executing a run concurrently, GLOBALLY (single shared semaphore; replaces the old per-tier concurrency knobs). This bounds how many collectors run at once; it is distinct from api.concurrency_limit, which bounds the fan-out breadth INSIDE one collector. The two compose: up to max_concurrent_collectors collectors run, each fanning out up to api.concurrency_limit sub-requests (#636). (min: 1, max: 50)
MERAKI_EXPORTER_COLLECTORS__COLLECT_AP_SIGNAL_QUALITYboolTrueCollect per-AP wireless signal quality (RSSI/SNR). Costs ONE API call per selected AP per cycle (hourly cadence; no bulk endpoint exists). Scope the fan-out with ap_signal_quality_tags, or disable entirely.
MERAKI_EXPORTER_COLLECTORS__AP_SIGNAL_QUALITY_TAGSlist[str][]Meraki device tags scoping AP signal-quality collection. Empty = all APs; non-empty = only APs carrying at least one of these tags (CSV or JSON array).
MERAKI_EXPORTER_COLLECTORS__COLLECT_INSIGHTboolFalseEnable the Meraki Insight collector (license-gated WAN/application health). Off by default; degrades to a debug-level skip when the org lacks Insight.
MERAKI_EXPORTER_COLLECTORS__INSIGHT_APP_HEALTH_ENABLEDboolTrueWhen collect_insight is on, also fan out per-network application health (one call per network x monitored application per cycle).

Client Settings

Client data collection and DNS resolution settings

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_CLIENTS__ENABLEDboolFalseEnable client data collection
MERAKI_EXPORTER_CLIENTS__APPLICATION_TOP_Nint20Maximum application names retained per client collection scope; remaining application usage is aggregated into the optional other bucket. (min: 1, max: 200)
MERAKI_EXPORTER_CLIENTS__APPLICATION_OTHER_BUCKETboolTrueAggregate application usage outside application_top_n into a stable other bucket.
MERAKI_EXPORTER_CLIENTS__APPLICATION_ALLOWLISTlist[str][]Application names always retained in addition to the configured top-N; empty keeps only the ranked applications and optional other bucket.
MERAKI_EXPORTER_CLIENTS__DNS_REVERSE_LOOKUP_ENABLEDboolTrueEnable reverse-DNS lookups for client IP addresses. Enabled by default to preserve the existing hostname-enrichment behaviour; disable to avoid sending client IPs to the configured system resolver.
MERAKI_EXPORTER_CLIENTS__DNS_MAX_CONCURRENT_LOOKUPSint32Maximum number of reverse-DNS lookups in flight at once. (min: 1, max: 512)
MERAKI_EXPORTER_CLIENTS__DNS_TIMEOUTfloat5.0DNS lookup timeout in seconds (min: 0.5, max: 10.0)
MERAKI_EXPORTER_CLIENTS__DNS_CACHE_TTLint21600DNS cache TTL in seconds (default: 6 hours) (min: 300, max: 86400)
MERAKI_EXPORTER_CLIENTS__DNS_CACHE_MAX_ENTRIESint100000Maximum number of reverse-DNS cache entries (and per-client IP-tracking entries) held in memory. When exceeded, expired entries are pruned first, then the oldest entries are evicted so RSS stays bounded under sustained client churn (#543). (min: 1000, max: 5000000)
MERAKI_EXPORTER_CLIENTS__CACHE_TTLint3600Client cache TTL in seconds (for ID/hostname mappings, not metrics) (min: 300, max: 86400)
MERAKI_EXPORTER_CLIENTS__MAX_CLIENTS_PER_NETWORKint10000Maximum clients to track per network (min: 100, max: 50000)
MERAKI_EXPORTER_CLIENTS__MAX_CLIENTS_TOTALint25000Global cap on clients emitted as metric series across ALL networks per collection cycle. Clients beyond the cap are dropped from metric emission with a warning and counted in meraki_exporter_clients_over_cap. (min: 100, max: 1000000)
MERAKI_EXPORTER_CLIENTS__SIGNAL_QUALITY_ENABLEDboolFalseEnable per-client wireless signal quality (RSSI/SNR) collection. Costs one API call per wireless client per cycle (interval-gated); prohibitively expensive at scale, so disabled by default.

Cardinality Settings

Metric cardinality guard (series-per-family caps and shedding)

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_CARDINALITY__MAX_SERIES_PER_FAMILYint50000Maximum number of active time series permitted per metric family (metric name). When a family exceeds this, action decides what happens. (min: 100, max: 10000000)
MERAKI_EXPORTER_CARDINALITY__ACTIONwarn | dropwarnWhat to do when a metric family exceeds max_series_per_family: 'warn' logs and keeps emitting; 'drop' stops emitting new series for that family.
MERAKI_EXPORTER_CARDINALITY__DISABLED_METRICSset[str][]Metric family names to disable entirely (never emitted). Accepts a comma-separated string or a JSON array via env (MERAKI_EXPORTER_CARDINALITY__DISABLED_METRICS=a,b,c).
MERAKI_EXPORTER_CARDINALITY__MONITOR_INTERVAL_SECONDSint300How often (seconds) the cardinality monitor samples the registry. (min: 10, max: 3600)
MERAKI_EXPORTER_CARDINALITY__MONITOR_MAX_LABEL_VALUESint100Maximum distinct values retained per label when the cardinality monitor tracks label-value breakdowns, bounding the monitor's own memory. (min: 1, max: 100000)

Scheduler Settings

Adaptive budget-aware endpoint scheduler (AIMD, stretch, resolve cadence)

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_SCHEDULER__MODEadaptive | fixedadaptive'adaptive' (default): solver stretches endpoint-group intervals to fit the API budget. 'fixed': floors/pins only, no stretching, no AIMD (transition fallback).
MERAKI_EXPORTER_SCHEDULER__TARGET_UTILIZATIONfloat0.7Fraction of the effective budget the solver plans to; headroom absorbs bursts. (min: 0.1, max: 1.0)
MERAKI_EXPORTER_SCHEDULER__MAX_STRETCH_FACTORfloat4.0Per-group interval cap as a multiple of its volatility floor. (min: 1.0, max: 16.0)
MERAKI_EXPORTER_SCHEDULER__MAX_INTERVAL_SECONDSint3600Absolute per-group interval cap. (min: 300, max: 86400)
MERAKI_EXPORTER_SCHEDULER__RESOLVE_INTERVAL_SECONDSint900How often the solver recomputes from org shape (matches inventory TTL). (min: 60, max: 86400)
MERAKI_EXPORTER_SCHEDULER__FAILURE_RETRY_SECONDSint300After a group's fetch fails (its gate is left open), wait at least this long before re-attempting it, instead of hot-looping. Reproduces the old ~300s failed-fetch retry cadence for every group regardless of floor. (min: 30, max: 3600)
MERAKI_EXPORTER_SCHEDULER__AIMD_ENABLEDboolTrue429/Retry-After budget feedback (adaptive mode only).
MERAKI_EXPORTER_SCHEDULER__AIMD_BACKOFF_MULTIPLIERfloat0.5(min: 0.1, max: 0.9)
MERAKI_EXPORTER_SCHEDULER__AIMD_RECOVERY_RPS_PER_MINUTEfloat0.1(min: 0.01, max: 5.0)
MERAKI_EXPORTER_SCHEDULER__AIMD_RESOLVE_HYSTERESISfloat0.2(min: 0.05, max: 1.0)
MERAKI_EXPORTER_SCHEDULER__GROUP_INTERVAL_OVERRIDESdict[str, int]{}Per-group interval pins, e.g. {"nh_connection_stats": 900}. Pinned groups are excluded from solver stretching. Env: JSON object.

Network Filter Settings

Restrict which networks are scraped by name glob, ID, or tag

Environment VariableTypeDefaultDescription
MERAKI_EXPORTER_NETWORK_FILTER__INCLUDE_NAMESlist[str][]Network name globs to include. Supports * and ? wildcards.
MERAKI_EXPORTER_NETWORK_FILTER__INCLUDE_IDSlist[str][]Exact network IDs (e.g. L_xxx) to include.
MERAKI_EXPORTER_NETWORK_FILTER__INCLUDE_TAGSlist[str][]Network tags to include. A network matches if it carries any of these tags.
MERAKI_EXPORTER_NETWORK_FILTER__EXCLUDE_NAMESlist[str][]Network name globs to exclude. Applied AFTER includes.
MERAKI_EXPORTER_NETWORK_FILTER__EXCLUDE_IDSlist[str][]Exact network IDs to exclude.
MERAKI_EXPORTER_NETWORK_FILTER__EXCLUDE_TAGSlist[str][]Network tags to exclude.

All fields default to empty, which leaves the filter inactive (every network in every configured org is scraped). If any INCLUDE_* field is set, a network must match at least one include rule (by name, ID, or tag) to be considered; exclude rules are applied afterward and always win. Name fields (INCLUDE_NAMES/EXCLUDE_NAMES) are case-sensitive glob patterns (*/?). Values are comma-separated lists (or a JSON array string).