# Telegraf configuration # Telegraf is entirely plugin driven. All metrics are gathered from the # declared inputs, and sent to the declared outputs. # Plugins must be declared in here to be active. # To deactivate a plugin, comment out the name and any variables. # Use 'telegraf -config telegraf.conf -test' to see what metrics a config # file would generate. # Global tags can be specified here in key="value" format. [global_tags] # dc = "us-east-1" # will tag all metrics with dc=us-east-1 # rack = "1a" # Configuration for telegraf agent [agent] ## Default data collection interval for all inputs interval = "10s" ## Rounds collection interval to 'interval' ## ie, if interval="10s" then always collect on :00, :10, :20, etc. round_interval = true ## Telegraf will cache metric_buffer_limit metrics for each output, and will ## flush this buffer on a successful write. metric_buffer_limit = 1000 ## Flush the buffer whenever full, regardless of flush_interval. flush_buffer_when_full = true ## Collection jitter is used to jitter the collection by a random amount. ## Each plugin will sleep for a random time within jitter before collecting. ## This can be used to avoid many plugins querying things like sysfs at the ## same time, which can have a measurable effect on the system. collection_jitter = "0s" ## Default flushing interval for all outputs. You shouldn't set this below ## interval. Maximum flush_interval will be flush_interval + flush_jitter flush_interval = "10s" ## Jitter the flush interval by a random amount. This is primarily to avoid ## large write spikes for users running a large number of telegraf instances. ## ie, a jitter of 5s and interval 10s means flushes will happen every 10-15s flush_jitter = "0s" ## Logging configuration: ## Run telegraf in debug mode debug = false ## Run telegraf in quiet mode quiet = false ## Specify the log file name. The empty string means to log to stdout. logfile = "/Program Files/Telegraf/telegraf.log" ## Override default hostname, if empty use os.Hostname() hostname = "" ############################################################################### # OUTPUTS # ############################################################################### # Configuration for influxdb server to send metrics to [[outputs.influxdb]] # The full HTTP or UDP endpoint URL for your InfluxDB instance. # Multiple urls can be specified but it is assumed that they are part of the same # cluster, this means that only ONE of the urls will be written to each interval. # urls = ["udp://localhost:8089"] # UDP endpoint example urls = ["http://<>:8086"] # required # The target database for metrics (telegraf will create it if not exists) database = "telegraf" # required # Precision of writes, valid values are "ns", "us" (or "µs"), "ms", "s", "m", "h". # note: using second precision greatly helps InfluxDB compression precision = "s" ## Write timeout (for the InfluxDB client), formatted as a string. ## If not provided, will default to 5s. 0s means no timeout (not recommended). timeout = "5s" # username = "telegraf" # password = "metricsmetricsmetricsmetrics" # Set the user agent for HTTP POSTs (can be useful for log differentiation) # user_agent = "telegraf" # Set UDP payload size, defaults to InfluxDB UDP Client default (512 bytes) # udp_payload = 512 ############################################################################### # INPUTS # ############################################################################### [[inputs.win_perf_counters]] [[inputs.win_perf_counters.object]] # Processor usage, alternative to native, reports on a per core. ObjectName = "Processor" Instances = ["*"] Counters = [ "% Idle Time", "% Interrupt Time", "% Privileged Time", "% User Time", "% Processor Time" ] Measurement = "win_cpu" # Set to true to include _Total instance when querying for all (*). #IncludeTotal=false [[inputs.win_perf_counters.object]] # Disk times and queues ObjectName = "LogicalDisk" Instances = ["*"] Counters = [ "% Idle Time", "% Disk Time", "% Disk Read Time", "% Disk Write Time", "% User Time", "% Free Space", "Current Disk Queue Length", "Free Megabytes", "Disk Read Bytes/sec", "Disk Write Bytes/sec" ] Measurement = "win_disk" # Set to true to include _Total instance when querying for all (*). #IncludeTotal=false [[inputs.win_perf_counters.object]] ObjectName = "System" Counters = [ "Context Switches/sec", "System Calls/sec", "Processor Queue Length", "Threads", "System Up Time", "Processes" ] Instances = ["------"] Measurement = "win_system" # Set to true to include _Total instance when querying for all (*). #IncludeTotal=false [[inputs.win_perf_counters.object]] # Example query where the Instance portion must be removed to get data back, # such as from the Memory object. ObjectName = "Memory" Counters = [ "Available Bytes", "Cache Faults/sec", "Demand Zero Faults/sec", "Page Faults/sec", "Pages/sec", "Transition Faults/sec", "Pool Nonpaged Bytes", "Pool Paged Bytes" ] # Use 6 x - to remove the Instance bit from the query. Instances = ["------"] Measurement = "win_mem" # Set to true to include _Total instance when querying for all (*). #IncludeTotal=false [[inputs.win_perf_counters.object]] # more counters for the Network Interface Object can be found at # https://msdn.microsoft.com/en-us/library/ms803962.aspx ObjectName = "Network Interface" Counters = [ "Bytes Received/sec", "Bytes Sent/sec", "Packets Received/sec", "Packets Sent/sec" ] Instances = ["*"] # Use 6 x - to remove the Instance bit from the query. Measurement = "win_net" #IncludeTotal=false #Set to true to include _Total instance when querying for all (*). [[inputs.win_perf_counters.object]] # Process metrics ObjectName = "Process" Counters = [ "% Processor Time", "Handle Count", "Private Bytes", "Thread Count", "Virtual Bytes", "Working Set" ] Instances = ["*"] Measurement = "win_proc" #IncludeTotal=false #Set to true to include _Total instance when querying for all (*). # # Read metrics about Hyper-V [[inputs.win_perf_counters.object]] ObjectName = "Hyper-V Virtual Machine Health Summary" Instances = ["------"] Measurement = "hyperv_health" Counters = [ "Health Ok", "Health Critical", ] [[inputs.win_perf_counters.object]] ObjectName = "Hyper-V Hypervisor" Instances = ["------"] Measurement = "hyperv_hypervisor" Counters = [ "Logical Processors", "Partitions", ] [[inputs.win_perf_counters.object]] ObjectName = "Hyper-V Hypervisor Virtual Processor" Instances = ["*"] Measurement = "hyperv_processor" Counters = [ "% Guest Run Time", "% Hypervisor Run Time", "% Idle Time", "% Total Run Time", ] [[inputs.win_perf_counters.object]] ObjectName = "Hyper-V Dynamic Memory VM" Instances = ["*"] Measurement = "hyperv_dynamic_memory" Counters = [ "Current Pressure", "Guest Visible Physical Memory", ] [[inputs.win_perf_counters.object]] ObjectName = "Hyper-V VM Vid Partition" Instances = ["*"] Measurement = "hyperv_vid" Counters = [ "Physical Pages Allocated", ] [[inputs.win_perf_counters.object]] ObjectName = "Hyper-V Virtual Switch" Instances = ["*"] Measurement = "hyperv_vswitch" Counters = [ "Bytes Received/Sec", "Bytes Sent/Sec", "Packets Received/Sec", "Packets Sent/Sec", ] [[inputs.win_perf_counters.object]] ObjectName = "Hyper-V Virtual Network Adapter" Instances = ["*"] Measurement = "hyperv_vmnet" Counters = [ "Bytes Received/Sec", "Bytes Sent/Sec", "Packets Received/Sec", "Packets Sent/Sec", ] [[inputs.win_perf_counters.object]] ObjectName = "Hyper-V Virtual IDE Controller" Instances = ["*"] Measurement = "hyperv_vmdisk" Counters = [ "Read Bytes/Sec", "Write Bytes/Sec", "Read Sectors/Sec", "Write Sectors/Sec", ] [[inputs.win_perf_counters.object]] ObjectName = "Hyper-V Virtual Storage Device" Instances = ["*"] Measurement = "hyperv_storage" Counters = [ "Write Operations/Sec", "Read Operations/Sec", "Read Bytes/Sec", "Write Bytes/Sec", "Latency", "Throughput", ] [[inputs.win_perf_counters.object]] ObjectName = "Cluster CSV File System" Instances = ["*"] Measurement = "cluster_csv_filesystem" Counters = [ "Flushes/sec", "Reads/sec", "Writes/sec", "Read Latency", "Write Latency", "Redirected Write Bytes/sec", "Redirected Read Bytes/sec", ]