这是我关于Stack OverFlow的第一篇文章,我希望做得正确。
我是influxdb和telegraf的新手,但是作为项目的一部分,我想导入指标,这些指标来自网络设备,并由网络管理员通过.csv文件导出到influxdb。
我得到:
csv文件的结构如下: 时间戳记,网络元素名称,测量类型,[取决于测量,但是在下面的示例中,它将是每张卡的内存。]
这里是一个例子:
TimeStamp,NetworkElement_Name,Typeofmeasurement,Object,memAbsoluteUsage
2020-05-05T20:00:00+02:00,router1,CPU/Memory Usage,card1,1075
2020-05-05T20:00:00+02:00,router1,CPU/Memory Usage,card2,832
此文件在相同的时间戳下存在两次,但具有不同的“ NetworkElement_Name”,“ Object”和值。
就Telegraf而言,我为每个导入的CSV创建了一个“ .conf”文件,如下所示:
[[inputs.file]]
files = ["/metric/data/data/clean_data/**/**/router_cpuMemUsage.csv"]
data_format = "csv"
csv_header_row_count = 1
csv_skip_rows = 0
csv_skip_columns = 0
csv_delimiter = ","
csv_column_types = ["string","string","string","string","int"]
csv_measurement_column = "Typeofmeasurement"
csv_timestamp_column = "TimeStamp"
csv_timestamp_format = "2006-01-02T15:04:05-07:00"
[[outputs.influxdb]]
database = "router Metrics"
数据似乎已导入...但是,我意识到缺少一些值...
我很难理解/解释问题。 但是我无法获取在特定时间记录的所有值。 退货要求:
> SELECT * FROM "CPU/Memory Usage" WHERE "NE Name" =~ /router1/ ORDER BY DESC LIMIT 5
name: CPU/Memory Usage
time NE Name Object ID Object Type Time Stamp memUsage
---- ------- --------- ----------- ---------- ----------
2020-05-07T06:45:00Z router1 card1 CPU/Memory Usage 2020-05-07T08:45:00+02:00 1075
2020-05-07T06:30:00Z router1 card1 CPU/Memory Usage 2020-05-07T08:30:00+02:00 1075
2020-05-07T06:15:00Z router1 card1 CPU/Memory Usage 2020-05-07T08:15:00+02:00 1075
2020-05-07T06:00:00Z router1 card1 CPU/Memory Usage 2020-05-07T08:00:00+02:00 1075
2020-05-07T05:45:00Z router1 card1 CPU/Memory Usage 2020-05-07T07:45:00+02:00 1075
我只有卡1的信息,而没有卡2的信息,如果我删除“ WHERE”子句,对于同一“ TIMESTAMP”,我将不具备所有信息,所以我会错过以下信息路由器2.
在给定的“ TIMESTAMP”上,一台路由器的值将不存在。
我无法理解可以解决该问题的地方。
如果您有一个主意:)