每天进步一点点---------kibana/Grafana场景3 时间曲线

场景3 绘制水泵注水的速度

小红都上高中了,学习了立体几何,老师又来作妖了,老师说了,小红,这个立方体的水塔底面积10平米,高50米,你用这个水泵给他注水,水泵注水的速度是会变的,你给我统计一下注水的速度。
小红说,这还不简单,我只要统计水塔增长的速度,然后除以水泵的横截面积就可以了,然后,按时间统计了水泵的高度,从2021/06/21 17:21:30s开始每隔10s统计依次,并写入到ElasticSearch中。
高度:high:83cm 范围从0-50000cm 时间date:2021-06-27T17:21:30
注:ES支持的日期格式可以查看文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/date.html
如下,创建索引和设置属性。
每天进步一点点---------kibana/Grafana场景3 时间曲线
添加一些数据然后查询数据:

保存数据:
{
	"time":"2021-06-27T17:26:45",
	"waterhigh":150
}

查询数据
{
	"query":{
		"match_all":{}
	}
}
回显
{
    "took": 5,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 7,
            "relation": "eq"
        },
        "max_score": 1,
        "hits": [
            {
                "_index": "water",
                "_type": "_doc",
                "_id": "nfrVTHoBxlfFgemdO-u3",
                "_score": 1,
                "_source": {
                    "time": "2021-06-27T17:21:30",
                    "waterhigh": 5
                }
            },
            {
                "_index": "water",
                "_type": "_doc",
                "_id": "nvrWTHoBxlfFgemdHOsa",
                "_score": 1,
                "_source": {
                    "time": "2021-06-27T17:22:30",
                    "waterhigh": 10
                }
            },
            {
                "_index": "water",
                "_type": "_doc",
                "_id": "n_rWTHoBxlfFgemdNOtN",
                "_score": 1,
                "_source": {
                    "time": "2021-06-27T17:25:30",
                    "waterhigh": 20
                }
            },
            {
                "_index": "water",
                "_type": "_doc",
                "_id": "oPrWTHoBxlfFgemdVeu8",
                "_score": 1,
                "_source": {
                    "time": "2021-06-27T17:26:30",
                    "waterhigh": 80
                }
            },
            {
                "_index": "water",
                "_type": "_doc",
                "_id": "ofrWTHoBxlfFgemdcuuA",
                "_score": 1,
                "_source": {
                    "time": "2021-06-27T17:26:34",
                    "waterhigh": 90
                }
            },
            {
                "_index": "water",
                "_type": "_doc",
                "_id": "ovrWTHoBxlfFgemdj-tn",
                "_score": 1,
                "_source": {
                    "time": "2021-06-27T17:26:37",
                    "waterhigh": 120
                }
            },
            {
                "_index": "water",
                "_type": "_doc",
                "_id": "o_rWTHoBxlfFgemdt-uS",
                "_score": 1,
                "_source": {
                    "time": "2021-06-27T17:26:45",
                    "waterhigh": 150
                }
            }
        ]
    }
}

kibana中设置index,指定time后,在discovery查看,尴尬的发现没有发现数据。
每天进步一点点---------kibana/Grafana场景3 时间曲线
设置时间检索范围,终于有数据了,但是我保存的命名是27号的数据呀,为啥会全显示28呢,
每天进步一点点---------kibana/Grafana场景3 时间曲线
时间的对应关系如下,可以看到向后推迟了8个小时,其实这个就是UTC时间和本地时间搞的鬼了,本地时间为北京时间(UTC+8),而ElasticSearch保存的时间认为是UTC时间,即认为UTC的2021-06-27T17:21:30,到kibana显示的时候显示本地时间(北京时间),正好UTC+8了。

            {
                "_index": "water",
                "_type": "_doc",
                "_id": "nfrVTHoBxlfFgemdO-u3",
                "_score": 1,
                "_source": {
                    "time": "2021-06-27T17:21:30",
                    "waterhigh": 5
                }
            },

每天进步一点点---------kibana/Grafana场景3 时间曲线
那么能否通过设置完善这个结果呢,最好的办法莫过于设置ElasticSearch中数据的时区了,很遗憾,么有找到对应的方法,那看看时间戳的方式是否也会有类似的问题呢?
每天进步一点点---------kibana/Grafana场景3 时间曲线
很遗憾查询不出来,时间戳只能是ms的时间戳,如果是s的就又发生错误了。https://www.elastic.co/guide/en/elasticsearch/reference/7.13/search-aggregations-bucket-autodatehistogram-aggregation.html
每天进步一点点---------kibana/Grafana场景3 时间曲线
可以看到使用时间戳是不会发生时间的偏移的,这是为什么呢,其实这是因为我使用工具转换的时间戳,默认UTC时间转换的时间戳了,如果是东八区的时间转换的时间戳是仍然会有时间便宜的。
每天进步一点点---------kibana/Grafana场景3 时间曲线
查看大神的博客后,给出一个时区的总结,https://blog.csdn.net/qq_28988969/article/details/103498476
每天进步一点点---------kibana/Grafana场景3 时间曲线
那么既然已经有数据了,让我们来做一个随时间展示的折线图吧。
很遗憾,Y轴选不到了,我们将Y轴设置成了text,字符串类型,需要设置成数字long

{
	"properties":{
		"waterhigh":{
			"type":"long",
			"index":true
		},
		"time":{
			"type":"date",
			"index":true
		}
	}
}

每天进步一点点---------kibana/Grafana场景3 时间曲线

上一篇:关于 Kibana 、Elasticsearch 奇怪的知识点,一般人可能永远遇不到


下一篇:elfk收集k8s日志(二)