# Influxdb for Network Telemetry high CPU

**URL:** <https://community.influxdata.com/t/influxdb-for-network-telemetry-high-cpu/11018>\
**Category:** Store\
**Tags:** influxdb\
**Created:** [August 26, 2019, 2:12pm UTC](https://community.influxdata.com/t/influxdb-for-network-telemetry-high-cpu/11018 "2019-08-26T14:12:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![torch](https://avatars.discourse-cdn.com/v4/letter/t/8e7dd6/32.png) [@torch](https://community.influxdata.com/u/torch)\
**Post date:** [August 26, 2019, 2:12pm UTC](https://community.influxdata.com/t/influxdb-for-network-telemetry-high-cpu/11018/1 "2019-08-26T14:12:32Z")

</div>

Hi everyone,  
I’m pretty new to Influxdb, searched a while to find some optimizations for Cisco Network Telemetry (MDT) with Influx, but couldn’t create a good config for my Project.  
Hopefully some of you could give me some hints to optimize my setup.  
I couldn’t upload Files, so I uploaded them to drive and linked it in here.

**What I’m trying to do:**  
I’m working on an concept to store our Cisco Network Telemetry Data into influxdb.  
The setup looks like this:  
[https://drive.google.com/file/d/195vcCRGYiZG6BzwVEgjkuQPTGIEuXDkJ/view?usp=sharing](https://drive.google.com/file/d/195vcCRGYiZG6BzwVEgjkuQPTGIEuXDkJ/view?usp=sharing)

1. A new message comes in
2. The loadbalancer sends it to one of the two Telegraf Servers which are running the “cisco\_telemetry\_mdt” input plugin (telinput1 + 2)
3. The message is written to an Apache Kafka topic as “influx data format”. (telbuff1 + 2 +3)
4. The next two Telegraf Servers (telpipe1 + 2) are pulling the Data from the Kafka Topic and send them to the InfluxDB Server (teldb1 (there is no teldb2))

**Influxdb Server Resources:**  
OS: Debian 9 (VMware)  
CPU: 16 @ 2,30Ghz  
RAM: 32 GB  
Storage: Full Flash, no local SSDs

**The Problem:**  
The influxDB Server is running on nearly 100% if it has to insert the Telemetry Data.  
Is there a way to optimize my config for better performance? This is a Test setup and in Production I’ll get 5 times or more Data from our Network Devices.

**Configs:**

Nearly the default after I played around with it:

> **InfluxDB Config**
>
> ```
> ### Welcome to the InfluxDB configuration file.
> 
> # The values in this file override the default values used by the system if
> # a config option is not specified. The commented out lines are the configuration
> # field and the default value used. Uncommenting a line and changing the value
> # will change the value used at runtime when the process is restarted.
> 
> # Once every 24 hours InfluxDB will report usage data to usage.influxdata.com
> # The data includes a random ID, os, arch, version, the number of series and other
> # usage data. No data from user databases is ever transmitted.
> # Change this option to true to disable reporting.
> # reporting-disabled = false
> 
> # Bind address to use for the RPC service for backup and restore.
> bind-address = "172.31.147.41:8088"
> 
> ###
> ### [meta]
> ###
> ### Controls the parameters for the Raft consensus group that stores metadata
> ### about the InfluxDB cluster.
> ###
> 
> [meta]
> # Where the metadata/raft database is stored
> dir = "/var/lib/influxdb/meta"
> 
> # Automatically create a default retention policy when creating a database.
> # retention-autocreate = true
> 
> # If log messages are printed for the meta service
> # logging-enabled = true
> 
> ###
> ### [data]
> ###
> ### Controls where the actual shard data for InfluxDB lives and how it is
> ### flushed from the WAL. "dir" may need to be changed to a suitable place
> ### for your system, but the WAL settings are an advanced configuration. The
> ### defaults should work for most systems.
> ###
> 
> [data]
> # The directory where the TSM storage engine stores TSM files.
> dir = "/var/lib/influxdb/data"
> 
> # The directory where the TSM storage engine stores WAL files.
> wal-dir = "/var/lib/influxdb/wal"
> 
> # The amount of time that a write will wait before fsyncing. A duration
> # greater than 0 can be used to batch up multiple fsync calls. This is useful for slower
> # disks or when WAL write contention is seen. A value of 0s fsyncs every write to the WAL.
> # Values in the range of 0-100ms are recommended for non-SSD disks.
> # wal-fsync-delay = "0s"
> 
> # The type of shard index to use for new shards. The default is an in-memory index that is
> # recreated at startup. A value of "tsi1" will use a disk based index that supports higher
> # cardinality datasets.
> # index-version = "tsi1"
> 
> # Trace logging provides more verbose output around the tsm engine. Turning
> # this on can provide more useful output for debugging tsm engine issues.
> # trace-logging-enabled = false
> 
> # Whether queries should be logged before execution. Very useful for troubleshooting, but will
> # log any sensitive data contained within a query.
> # query-log-enabled = true
> 
> # Validates incoming writes to ensure keys only have valid unicode characters.
> # This setting will incur a small overhead because every key must be checked.
> # validate-keys = false
> 
> # Settings for the TSM engine
> 
> # CacheMaxMemorySize is the maximum size a shard's cache can
> # reach before it starts rejecting writes.
> # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
> # Values without a size suffix are in bytes.
> # cache-max-memory-size = "1g"
> 
> # CacheSnapshotMemorySize is the size at which the engine will
> # snapshot the cache and write it to a TSM file, freeing up memory
> # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
> # Values without a size suffix are in bytes.
> # cache-snapshot-memory-size = "25m"
> 
> # CacheSnapshotWriteColdDuration is the length of time at
> # which the engine will snapshot the cache and write it to
> # a new TSM file if the shard hasn't received writes or deletes
> # cache-snapshot-write-cold-duration = "10m"
> 
> # CompactFullWriteColdDuration is the duration at which the engine
> # will compact all TSM files in a shard if it hasn't received a
> # write or delete
> # compact-full-write-cold-duration = "4h"
> 
> # The maximum number of concurrent full and level compactions that can run at one time. A
> # value of 0 results in 50% of runtime.GOMAXPROCS(0) used at runtime. Any number greater
> # than 0 limits compactions to that value. This setting does not apply
> # to cache snapshotting.
> # max-concurrent-compactions = 0
> 
> # CompactThroughput is the rate limit in bytes per second that we
> # will allow TSM compactions to write to disk. Note that short bursts are allowed
> # to happen at a possibly larger value, set by CompactThroughputBurst
> # compact-throughput = "48m"
> 
> # CompactThroughputBurst is the rate limit in bytes per second that we
> # will allow TSM compactions to write to disk.
> # compact-throughput-burst = "48m"
> 
> # The threshold, in bytes, when an index write-ahead log file will compact
> # into an index file. Lower sizes will cause log files to be compacted more
> # quickly and result in lower heap usage at the expense of write throughput.
> # Higher sizes will be compacted less frequently, store more series in-memory,
> # and provide higher write throughput.
> # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
> # Values without a size suffix are in bytes.
> # max-index-log-file-size = "1m"
> 
> # The maximum series allowed per database before writes are dropped. This limit can prevent
> # high cardinality issues at the database level. This limit can be disabled by setting it to
> # 0.
> # max-series-per-database = 1000000
> 
> # The maximum number of tag values per tag that are allowed before writes are dropped. This limit
> # can prevent high cardinality tag values from being written to a measurement. This limit can be
> # disabled by setting it to 0.
> max-values-per-tag = 0
> 
> # If true, then the mmap advise value MADV_WILLNEED will be provided to the kernel with respect to
> # TSM files. This setting has been found to be problematic on some kernels, and defaults to off.
> # It might help users who have slow disks in some cases.
> # tsm-use-madv-willneed = false
> 
> ###
> ### [coordinator]
> ###
> ### Controls the clustering service configuration.
> ###
> 
> [coordinator]
> # The default time a write request will wait until a "timeout" error is returned to the caller.
> # write-timeout = "10s"
> 
> # The maximum number of concurrent queries allowed to be executing at one time. If a query is
> # executed and exceeds this limit, an error is returned to the caller. This limit can be disabled
> # by setting it to 0.
> # max-concurrent-queries = 0
> 
> # The maximum time a query will is allowed to execute before being killed by the system. This limit
> # can help prevent run away queries. Setting the value to 0 disables the limit.
> # query-timeout = "0s"
> 
> # The time threshold when a query will be logged as a slow query. This limit can be set to help
> # discover slow or resource intensive queries. Setting the value to 0 disables the slow query logging.
> # log-queries-after = "0s"
> 
> # The maximum number of points a SELECT can process. A value of 0 will make
> # the maximum point count unlimited. This will only be checked every second so queries will not
> # be aborted immediately when hitting the limit.
> # max-select-point = 0
> 
> # The maximum number of series a SELECT can run. A value of 0 will make the maximum series
> # count unlimited.
> # max-select-series = 0
> 
> # The maxium number of group by time bucket a SELECT can create. A value of zero will max the maximum
> # number of buckets unlimited.
> # max-select-buckets = 0
> 
> ###
> ### [retention]
> ###
> ### Controls the enforcement of retention policies for evicting old data.
> ###
> 
> [retention]
> # Determines whether retention policy enforcement enabled.
> # enabled = true
> 
> # The interval of time when retention policy enforcement checks run.
> # check-interval = "30m"
> 
> ###
> ### [shard-precreation]
> ###
> ### Controls the precreation of shards, so they are available before data arrives.
> ### Only shards that, after creation, will have both a start- and end-time in the
> ### future, will ever be created. Shards are never precreated that would be wholly
> ### or partially in the past.
> 
> [shard-precreation]
> # Determines whether shard pre-creation service is enabled.
> # enabled = true
> 
> # The interval of time when the check to pre-create new shards runs.
> # check-interval = "10m"
> 
> # The default period ahead of the endtime of a shard group that its successor
> # group is created.
> # advance-period = "30m"
> 
> ###
> ### Controls the system self-monitoring, statistics and diagnostics.
> ###
> ### The internal database for monitoring data is created automatically if
> ### if it does not already exist. The target retention within this database
> ### is called 'monitor' and is also created with a retention period of 7 days
> ### and a replication factor of 1, if it does not exist. In all cases the
> ### this retention policy is configured as the default for the database.
> 
> [monitor]
> # Whether to record statistics internally.
> # store-enabled = true
> 
> # The destination database for recorded statistics
> # store-database = "_internal"
> 
> # The interval at which to record statistics
> # store-interval = "10s"
> 
> ###
> ### [http]
> ###
> ### Controls how the HTTP endpoints are configured. These are the primary
> ### mechanism for getting data into and out of InfluxDB.
> ###
> 
> [http]
> # Determines whether HTTP endpoint is enabled.
> # enabled = true
> 
> # Determines whether the Flux query endpoint is enabled.
> # flux-enabled = false
> 
> # The bind address used by the HTTP service.
> # bind-address = ":8086"
> 
> # Determines whether user authentication is enabled over HTTP/HTTPS.
> # auth-enabled = false
> 
> # The default realm sent back when issuing a basic auth challenge.
> # realm = "InfluxDB"
> 
> # Determines whether HTTP request logging is enabled.
> # log-enabled = true
> 
> # Determines whether the HTTP write request logs should be suppressed when the log is enabled.
> # suppress-write-log = false
> 
> # When HTTP request logging is enabled, this option specifies the path where
> # log entries should be written. If unspecified, the default is to write to stderr, which
> # intermingles HTTP logs with internal InfluxDB logging.
> #
> # If influxd is unable to access the specified path, it will log an error and fall back to writing
> # the request log to stderr.
> # access-log-path = ""
> 
> # Filters which requests should be logged. Each filter is of the pattern NNN, NNX, or NXX where N is
> # a number and X is a wildcard for any number. To filter all 5xx responses, use the string 5xx.
> # If multiple filters are used, then only one has to match. The default is to have no filters which
> # will cause every request to be printed.
> # access-log-status-filters = []
> 
> # Determines whether detailed write logging is enabled.
> # write-tracing = false
> 
> # Determines whether the pprof endpoint is enabled. This endpoint is used for
> # troubleshooting and monitoring.
> # pprof-enabled = true
> 
> # Enables a pprof endpoint that binds to localhost:6060 immediately on startup.
> # This is only needed to debug startup issues.
> # debug-pprof-enabled = false
> 
> # Determines whether HTTPS is enabled.
> # https-enabled = false
> 
> # The SSL certificate to use when HTTPS is enabled.
> # https-certificate = "/etc/ssl/influxdb.pem"
> 
> # Use a separate private key location.
> # https-private-key = ""
> 
> # The JWT auth shared secret to validate requests using JSON web tokens.
> # shared-secret = ""
> 
> # The default chunk size for result sets that should be chunked.
> # max-row-limit = 0
> 
> # The maximum number of HTTP connections that may be open at once. New connections that
> # would exceed this limit are dropped. Setting this value to 0 disables the limit.
> # max-connection-limit = 0
> 
> # Enable http service over unix domain socket
> # unix-socket-enabled = false
> 
> # The path of the unix domain socket.
> # bind-socket = "/var/run/influxdb.sock"
> 
> # The maximum size of a client request body, in bytes. Setting this value to 0 disables the limit.
> # max-body-size = 25000000
> 
> # The maximum number of writes processed concurrently.
> # Setting this to 0 disables the limit.
> # max-concurrent-write-limit = 0
> 
> # The maximum number of writes queued for processing.
> # Setting this to 0 disables the limit.
> # max-enqueued-write-limit = 0
> 
> # The maximum duration for a write to wait in the queue to be processed.
> # Setting this to 0 or setting max-concurrent-write-limit to 0 disables the limit.
> # enqueued-write-timeout = 0
> 
> ###
> ### [logging]
> ###
> ### Controls how the logger emits logs to the output.
> ###
> 
> [logging]
> # Determines which log encoder to use for logs. Available options
> # are auto, logfmt, and json. auto will use a more a more user-friendly
> # output format if the output terminal is a TTY, but the format is not as
> # easily machine-readable. When the output is a non-TTY, auto will use
> # logfmt.
> # format = "auto"
> 
> # Determines which level of logs will be emitted. The available levels
> # are error, warn, info, and debug. Logs that are equal to or above the
> # specified level will be emitted.
> # level = "info"
> 
> # Suppresses the logo output that is printed when the program is started.
> # The logo is always suppressed if STDOUT is not a TTY.
> # suppress-logo = false
> 
> ###
> ### [subscriber]
> ###
> ### Controls the subscriptions, which can be used to fork a copy of all data
> ### received by the InfluxDB host.
> ###
> 
> [subscriber]
> # Determines whether the subscriber service is enabled.
> # enabled = true
> 
> # The default timeout for HTTP writes to subscribers.
> # http-timeout = "30s"
> 
> # Allows insecure HTTPS connections to subscribers. This is useful when testing with self-
> # signed certificates.
> # insecure-skip-verify = false
> 
> # The path to the PEM encoded CA certs file. If the empty string, the default system certs will be used
> # ca-certs = ""
> 
> # The number of writer goroutines processing the write channel.
> # write-concurrency = 40
> 
> # The number of in-flight writes buffered in the write channel.
> # write-buffer-size = 1000
> 
> ###
> ### [[graphite]]
> ###
> ### Controls one or many listeners for Graphite data.
> ###
> 
> [[graphite]]
> # Determines whether the graphite endpoint is enabled.
> # enabled = false
> # database = "graphite"
> # retention-policy = ""
> # bind-address = ":2003"
> # protocol = "tcp"
> # consistency-level = "one"
> 
> # These next lines control how batching works. You should have this enabled
> # otherwise you could get dropped metrics or poor performance. Batching
> # will buffer points in memory if you have many coming in.
> 
> # Flush if this many points get buffered
> batch-size = 5000
> 
> # number of batches that may be pending in memory
> # batch-pending = 10
> 
> # Flush at least this often even if we haven't hit buffer limit
> # batch-timeout = "1s"
> 
> # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
> # udp-read-buffer = 0
> 
> ### This string joins multiple matching 'measurement' values providing more control over the final measurement name.
> # separator = "."
> 
> ### Default tags that will be added to all metrics. These can be overridden at the template level
> ### or by tags extracted from metric
> # tags = ["region=us-east", "zone=1c"]
> 
> ### Each template line requires a template pattern. It can have an optional
> ### filter before the template and separated by spaces. It can also have optional extra
> ### tags following the template. Multiple tags should be separated by commas and no spaces
> ### similar to the line protocol format. There can be only one default template.
> # templates = [
> # "*.app env.service.resource.measurement",
> # # Default template
> # "server.*",
> # ]
> 
> ###
> ### [collectd]
> ###
> ### Controls one or many listeners for collectd data.
> ###
> 
> [[collectd]]
> # enabled = false
> # bind-address = ":25826"
> # database = "collectd"
> # retention-policy = ""
> #
> # The collectd service supports either scanning a directory for multiple types
> # db files, or specifying a single db file.
> # typesdb = "/usr/local/share/collectd"
> #
> # security-level = "none"
> # auth-file = "/etc/collectd/auth_file"
> 
> # These next lines control how batching works. You should have this enabled
> # otherwise you could get dropped metrics or poor performance. Batching
> # will buffer points in memory if you have many coming in.
> 
> # Flush if this many points get buffered
> # batch-size = 5000
> 
> # Number of batches that may be pending in memory
> # batch-pending = 10
> 
> # Flush at least this often even if we haven't hit buffer limit
> # batch-timeout = "10s"
> 
> # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
> # read-buffer = 0
> 
> # Multi-value plugins can be handled two ways.
> # "split" will parse and store the multi-value plugin data into separate measurements
> # "join" will parse and store the multi-value plugin as a single multi-value measurement.
> # "split" is the default behavior for backward compatability with previous versions of influxdb.
> # parse-multivalue-plugin = "split"
> ###
> ### [opentsdb]
> ###
> ### Controls one or many listeners for OpenTSDB data.
> ###
> 
> [[opentsdb]]
> # enabled = false
> # bind-address = ":4242"
> # database = "opentsdb"
> # retention-policy = ""
> # consistency-level = "one"
> # tls-enabled = false
> # certificate= "/etc/ssl/influxdb.pem"
> 
> # Log an error for every malformed point.
> # log-point-errors = true
> 
> # These next lines control how batching works. You should have this enabled
> # otherwise you could get dropped metrics or poor performance. Only points
> # metrics received over the telnet protocol undergo batching.
> 
> # Flush if this many points get buffered
> # batch-size = 1000
> 
> # Number of batches that may be pending in memory
> # batch-pending = 5
> 
> # Flush at least this often even if we haven't hit buffer limit
> # batch-timeout = "1s"
> 
> ###
> ### [[udp]]
> ###
> ### Controls the listeners for InfluxDB line protocol data via UDP.
> ###
> 
> [[udp]]
> # enabled = false
> # bind-address = ":8089"
> # database = "udp"
> # retention-policy = ""
> 
> # InfluxDB precision for timestamps on received points ("" or "n", "u", "ms", "s", "m", "h")
> # precision = ""
> 
> # These next lines control how batching works. You should have this enabled
> # otherwise you could get dropped metrics or poor performance. Batching
> # will buffer points in memory if you have many coming in.
> 
> # Flush if this many points get buffered
> # batch-size = 5000
> 
> # Number of batches that may be pending in memory
> # batch-pending = 10
> 
> # Will flush at least this often even if we haven't hit buffer limit
> # batch-timeout = "1s"
> 
> # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
> # read-buffer = 0
> 
> ###
> ### [continuous_queries]
> ###
> ### Controls how continuous queries are run within InfluxDB.
> ###
> 
> [continuous_queries]
> # Determines whether the continuous query service is enabled.
> # enabled = true
> 
> # Controls whether queries are logged when executed by the CQ service.
> # log-enabled = true
> 
> # Controls whether queries are logged to the self-monitoring data store.
> # query-stats-enabled = false
> 
> # interval for how often continuous queries will be checked if they need to run
> # run-interval = "1s"
> 
> ###
> ### [tls]
> ###
> ### Global configuration settings for TLS in InfluxDB.
> ###
> 
> [tls]
> # Determines the available set of cipher suites. See https://golang.org/pkg/crypto/tls/#pkg-constants
> # for a list of available ciphers, which depends on the version of Go (use the query
> # SHOW DIAGNOSTICS to see the version of Go used to build InfluxDB). If not specified, uses
> # the default settings from Go's crypto/tls package.
> # ciphers = [
> # "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
> # "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
> # ]
> 
> # Minimum version of the tls protocol that will be negotiated. If not specified, uses the
> # default settings from Go's crypto/tls package.
> # min-version = "tls1.2"
> 
> # Maximum version of the tls protocol that will be negotiated. If not specified, uses the
> # default settings from Go's crypto/tls package.
> # max-version = "tls1.2"
> 
> ```

> **Influx 'SHOW DIAGNOSTICS'**
>
> ```
> > show diagnostics
> name: build
> Branch Build Time Commit Version
> ------ ---------- ------ -------
> 1.7 f8fdf652f348fc9980997fe1c972e2b79ddd13b0 1.7.7
> 
> name: config
> bind-address reporting-disabled
> ------------ ------------------
> 172.31.147.41:8088 false
> 
> name: config-coordinator
> log-queries-after max-concurrent-queries max-select-buckets max-select-point max-select-series query-timeout write-timeout
> ----------------- ---------------------- ------------------ ---------------- ----------------- ------------- -------------
> 0s 0 0 0 0 0s 10s
> 
> name: config-cqs
> enabled query-stats-enabled run-interval
> ------- ------------------- ------------
> true false 1s
> 
> name: config-data
> cache-max-memory-size cache-snapshot-memory-size cache-snapshot-write-cold-duration compact-full-write-cold-duration dir max-concurrent-compactions max-index-log-file-size max-series-per-database max-values-per-tag series-id-set-cache-size wal-dir wal-fsync-delay
> --------------------- -------------------------- ---------------------------------- -------------------------------- --- -------------------------- ----------------------- ----------------------- ------------------ ------------------------ ------- ---------------
> 1073741824 26214400 10m0s 4h0m0s /var/lib/influxdb/data 0 1048576 1000000 0 100 /var/lib/influxdb/wal 0s
> 
> name: config-httpd
> access-log-path bind-address enabled https-enabled max-connection-limit max-row-limit
> --------------- ------------ ------- ------------- -------------------- -------------
> :8086 true false 0 0
> 
> name: config-meta
> dir
> ---
> /var/lib/influxdb/meta
> 
> name: config-monitor
> store-database store-enabled store-interval
> -------------- ------------- --------------
> _internal true 10s
> 
> name: config-precreator
> advance-period check-interval enabled
> -------------- -------------- -------
> 30m0s 10m0s true
> 
> name: config-retention
> check-interval enabled
> -------------- -------
> 30m0s true
> 
> name: config-subscriber
> enabled http-timeout write-buffer-size write-concurrency
> ------- ------------ ----------------- -----------------
> true 30s 1000 40
> 
> name: network
> hostname
> --------
> ti-p-teldb1
> 
> name: runtime
> GOARCH GOMAXPROCS GOOS version
> ------ ---------- ---- -------
> amd64 16 linux go1.11
> 
> name: system
> PID currentTime started uptime
> --- ----------- ------- ------
> 8485 2019-08-26T13:51:15.775420134Z 2019-08-26T13:33:08.698080784Z 18m7.07733935s
> 
> ```

> **influx 'SHOW STATS'**
>
> [https://drive.google.com/open?id=1ptoe5e8B08MULaR-OXcAdPEdliP4pqd1](https://drive.google.com/open?id=1ptoe5e8B08MULaR-OXcAdPEdliP4pqd1)

* * *

> **telinput config (telegraf.d/cisco\_telemetry.conf)**
>
> ```
> [[inputs.cisco_telemetry_mdt]]
> transport = "tcp"
> service_address = ":5432"
> [inputs.cisco_telemetry_mdt.tags]
> tag_kafkatopic = "telemetry_raw"
> 
> [[outputs.kafka]]
> brokers = ["172.31.147.30:9092","172.31.147.31:9092","172.31.147.32:9092"]
> topic = "telemetry_raw"
> client_id = "telpipe1"
> compression_codec = 0
> data_format = "influx"
> tagexclude = ["kafkatopic"]
> [outputs.kafka.tagpass]
> tag_kafkatopic = ["telemetry_raw"]
> 
> ```

> **telinput config (agent)**
>
> ```
> [agent]
> interval = "10s"
> round_interval = true
> metric_batch_size = 1000
> metric_buffer_limit = 10000
> collection_jitter = "0s"
> flush_interval = "10s"
> flush_jitter = "0s"
> precision = ""
> debug = false
> quiet = false
> logfile = ""
> hostname = ""
> omit_hostname = false
> 
> ```

* * *

> **tepipe config (telegraf.d/cisco\_telemetry.conf)**
>
> ```
> [[inputs.kafka_consumer]]
> brokers = ["172.31.147.30:9092","172.31.147.31:9092","172.31.147.32:9092"]
> topics = ["telemetry_raw"]
> client_id = "telpipe3"
> consumer_group = "telpipe_telemetry_raw"
> data_format = "influx"
> [inputs.kafka_consumer.tags]
> tag_kafkatopic = "telemetry_raw"
> 
> [[outputs.influxdb]]
> urls = ["http://172.31.147.41:8086"]
> database = "mdt"
> skip_database_creation = true
> timeout = "5s"
> username = "telegraf"
> password = "password"
> tagexclude = ["kafkatopic"]
> [outputs.influxdb.tagpass]
> tag_kafkatopic = ["telemetry_raw"]
> 
> ```

> **tepipe config (agent)**
>
> ```
> [agent]
> interval = "1s"
> round_interval = true
> metric_batch_size = 50000
> metric_buffer_limit = 100000
> collection_jitter = "0s"
> flush_interval = "500ms"
> flush_jitter = "0s"
> precision = ""
> debug = true
> quiet = false
> logfile = ""
> hostname = ""
> omit_hostname = false
> 
> ```

**Some Monitoring Data from the Server:**

[https://drive.google.com/open?id=1pmYc1-bkRWL0q349qviKXcyPEmhhfHOB](https://drive.google.com/open?id=1pmYc1-bkRWL0q349qviKXcyPEmhhfHOB)  
[https://drive.google.com/open?id=1elmnHWwvkzGIZUWp-1x\_0gy2TJCYESS4](https://drive.google.com/open?id=1elmnHWwvkzGIZUWp-1x_0gy2TJCYESS4)  
[https://drive.google.com/open?id=1qQz2CXGpaXzW2rqzqtOo306b5zsS21b8](https://drive.google.com/open?id=1qQz2CXGpaXzW2rqzqtOo306b5zsS21b8)
