当前位置: 首页 > news >正文

grafana大坑,es找不到时间戳 | No date field named timestamp found

grafana大坑,es找不到时间戳。最近我这边的es重新装了一遍,结果发现grafana连不上elasticsearch了(以下简称es),排查问题查了好久一直以为是es没有装成功或者两边的版本不兼容,最后才发现是数值类型问题

一、【问题描述】

prometheus的监控方案一般会配合grafana使用,但是prometheus为了快速他只能推送数值,不能推送日志,

elasticsearch这个东西现在市场上用的比较多,用来监控日志或者推送一些字符串到grafana非常好用。

但是笔者前段时间踩了一个很大的坑,浪费了很多时间。

具体情况就是grafana配置数据源的时候,会出现如下图错误,但是es是很确定在运行的且有数据,也有timstamp这个项目

二、【问题原因】

这是因为当es的index没有创建的时候,第一次推送数据,es会根据你的数据来猜一个类型。

但是恰好,grafana的时间戳跟标准时间戳相比需要乘1000(毫秒时间戳),比如1721022514000。那么elasticsearch会把这个当作一个long类型,而不是date类型

但是grafana来找es里面的数据的时候,要求必须要是date类型,所以会出现es和grafana都正常运行的情况下,grafana不能正常添加数据源。

三、【解决方法】

写一个request,使用put方法更改指定的index的数据类型为date即可

或者保证创建index的第一条推送,是一个很容易辨别的date类型,比如2024-07-15 14:12:05

#!/bin/bash# 设置Elasticsearch服务器URL
ES_URL="http://localhost:9200"# 删除现有的模板(如果存在)
curl -X DELETE "$ES_URL/_template/helloworld_template" -H 'Content-Type: application/json'# 创建新的模板,强制将timestamp字段设为date类型
curl -X PUT "$ES_URL/_template/helloworld_template" -H 'Content-Type: application/json' -d'
{"index_patterns": ["helloworld*"],"mappings": {"properties": {"timestamp": {"type": "date"}}}
}'# 创建一个新的索引(根据模板自动应用映射设置)
curl -X PUT "$ES_URL/helloworld-0001" -H 'Content-Type: application/json'# 添加一条文档
curl -X POST "$ES_URL/helloworld-0001/_doc" -H 'Content-Type: application/json' -d'
{"timestamp": "2024-07-15T12:34:56Z","message": "Hello, World!"
}'

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言 | Leetcode C语言题解之第240题搜索二维矩阵II
  • 【BUG】已解决:java.lang.reflect.InvocationTargetException
  • 设计模式-Git-其他
  • 游戏常用运行库安装包 Game Runtime Libraries Package
  • 期值(future)
  • Linux_线程的同步与互斥
  • Elasticsearch基础(五):使用Kibana Discover探索数据
  • Mybatis——动态SQL常用标签
  • JavaWeb笔记_Cookie
  • 企业微信PC版应用跳转到默认浏览器,避坑指南,欢迎补充(Vue项目版)。。。
  • IVI(In-Vehicle Infotainment,智能座舱的信息娱乐系统)
  • 深度学习落地实战:人脸面部表情识别
  • 【Android Framewrok】Handler源码解析
  • L298N的输出电流与电压
  • 我在百科荣创企业实践——简易函数信号发生器(5)
  • 【Leetcode】104. 二叉树的最大深度
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CSS相对定位
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • EOS是什么
  • ES6之路之模块详解
  • input实现文字超出省略号功能
  • Iterator 和 for...of 循环
  • Java基本数据类型之Number
  • leetcode388. Longest Absolute File Path
  • Linux CTF 逆向入门
  • Python打包系统简单入门
  • React Native移动开发实战-3-实现页面间的数据传递
  • Sublime text 3 3103 注册码
  • uva 10370 Above Average
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 第2章 网络文档
  • 检测对象或数组
  • 配置 PM2 实现代码自动发布
  • 我感觉这是史上最牛的防sql注入方法类
  • 用jquery写贪吃蛇
  • # Maven错误Error executing Maven
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #ubuntu# #git# repository git config --global --add safe.directory
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (5)STL算法之复制
  • (八十八)VFL语言初步 - 实现布局
  • (笔试题)分解质因式
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (四)opengl函数加载和错误处理
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (转)ORM
  • .Net 8.0 新的变化
  • .NET CLR基本术语
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .Net Core与存储过程(一)
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径