第28关 k8s监控实战之Prometheus(八)

这篇具有很好参考价值的文章主要介绍了第28关 k8s监控实战之Prometheus(八)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

------> 课程视频同步分享在今日头条和B站

大家好,我是博哥爱运维。从这节课开始,博哥计划引入golang(简称go)语言开发的一些内容,没有接触过go语言的同学也不用慌,我会尽量以一个新人的角度,去把这些go开发的内容讲得通俗一些。这节课还是继续 prometheus监控相关的内容,博哥带大家用go语言开发一个简单的http服务并暴露相应的prometheus指标。

首先电脑上需要安装好go语言,下载链接(选择相应的系统安装包):

https://golang.google.cn/dl/

然后安装好vscode这个编程IDE工具:

https://code.visualstudio.com/

配置好vscode里面go的相关插件,可以参考下这个文档:

https://zhuanlan.zhihu.com/p/320343679

我来先准备写一个简单的http服务扮演我们的业务服务角色

翻译自:https://prometheus.io/docs/tutorials/instrumenting_http_server_in_go/

package main

import (
   "fmt"
   "net/http"
)

func ping(w http.ResponseWriter, req *http.Request){
   fmt.Fprintf(w,"pong")
}

func main() {
   http.HandleFunc("/ping",ping)

   http.ListenAndServe(":8090", nil)
}

运行测试下,确保服务访问正常

然后我们准备创建一个 Prometheus counter计数器,来记录请求数

var pingCounter = prometheus.NewCounter(
   prometheus.CounterOpts{
       Name: "ping_request_count",
       Help: "No of request handled by Ping handler",
   },
)

接着我们在ping函数里面加入 pingCounter.Inc()来引用这个计数器

func ping(w http.ResponseWriter, req *http.Request) {
   pingCounter.Inc()
   fmt.Fprintf(w, "pong")
}

然后将计数器注册到 Default Register 并公开指标

func main() {
   prometheus.MustRegister(pingCounter)
   http.HandleFunc("/ping", ping)
   http.Handle("/metrics", promhttp.Handler())
   http.ListenAndServe(":8090", nil)
}

最终完整代码如下:

package main

import (
   "fmt"
   "net/http"

   "github.com/prometheus/client_golang/prometheus"
   "github.com/prometheus/client_golang/prometheus/promhttp"
)

var pingCounter = prometheus.NewCounter(
   prometheus.CounterOpts{
       Name: "ping_request_count",
       Help: "No of request handled by Ping handler",
   },
)

func ping(w http.ResponseWriter, req *http.Request) {
   pingCounter.Inc()
   fmt.Fprintf(w, "pong")
}

func main() {
   prometheus.MustRegister(pingCounter)

   http.HandleFunc("/ping", ping)
   http.Handle("/metrics", promhttp.Handler())
   http.ListenAndServe(":8090", nil)
}

我们准备来运行它

# 初始化包管理
go mod init prometheus
# 用国内加速代理下载包
export GOPROXY=https://goproxy.cn
# 更新依赖包
go mod tidy
# 运行服务
go run server.go

查看暴露的指标

http://127.0.0.1:8090/metrics

增加一些请求数

http://127.0.0.1:8090/ping

这里我们可以修改prometheus的配置,来监控我们自定义的这个服务,或者也可以参照博哥之前的课程,用serviceMonitor来暴露指标文章来源地址https://www.toymoban.com/news/detail-800040.html

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ["localhost:9090"]
  - job_name: simple_server
    static_configs:
      - targets: ["localhost:8090"]

到了这里,关于第28关 k8s监控实战之Prometheus(八)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Prometheus监控实战之Prometheus监控K8S

    Cadvisor + node-exporter + prometheus + grafana Cadvisor:数据采集 node-exporter:汇总 prometheus:处理、存储 grafana:展示 容器监控:Prometheus使用cadvisor采集容器监控指标,而 cadvisor集成在K8S的kubelet中所以无需部署 ,通过Prometheus进程存储,使用grafana进行展示。 node节点监控:node端的监控通

    2023年04月21日
    浏览(58)
  • Kubernetes(k8s)上安装Prometheus和Grafana监控

    当然前提环境是你得先有一个Kubernetes集群,版本在v1.21.*~v1.27.*之间,当然我已经准备好了Kubernetes: 可以看到我准备的Kubernetes版本为1.21.14的,符合要求。本篇文章也以这个版本来进行安装,上面提到的版本安装步骤和这个版本大体相同,按照步骤来即可。 因为在Kubernetes上安

    2024年02月10日
    浏览(127)
  • Prometheus+Grafana(外)监控Kubernetes(K8s)集群(基于containerd)

    1、k8s环境 版本 v1.26.5 二进制安装Kubernetes(K8s)集群(基于containerd)—从零安装教程(带证书) 主机名 IP 系统版本 安装服务 master01 10.10.10.21 rhel7.5 nginx、etcd、api-server、scheduler、controller-manager、kubelet、proxy master02 10.10.10.22 rhel7.5 nginx、etcd、api-server、scheduler、controller-manager、kubel

    2024年02月16日
    浏览(50)
  • Kubernetes(k8s)监控与报警(qq邮箱+钉钉):Prometheus + Grafana + Alertmanager(超详细)

    💖The Begin💖点点关注,收藏不迷路💖 Kubernetes是一个高度动态的容器编排平台,管理着大量的容器化应用程序。 为了保证这些应用程序的稳定性和性能,我们需要实施有效的监控和警报机制。在这篇文章中,我们将介绍如何使用Prometheus和Grafana构建一个完整的Kubernetes监控与

    2024年04月11日
    浏览(262)
  • Prometheus监控K8S

    目录 一、描述 二、监控流程 三、Kubernetes监控指标 四、使用Prometheus监控k8s Cadvisor + node-exporter + prometheus + grafana是一套非常流行的Kubernetes监控方案。它们的功能如下: - Cadvisor:容器资源监控工具,可以实时监控CPU、内存、存储、网络等容器指标,并暴露Metrics接口。 - node-exporter

    2024年02月02日
    浏览(51)
  • Kubernetes实战(二十三)-k8s event监控利器kube-eventer对接企微告警

    监控是保障系统稳定性的重要组成部分,在Kubernetes开源生态中,资源类的监控工具与组件监控比较多。 cAdvisor:kubelet内置的cAdvisor,监控容器资源,如容器cpu、内存; Kube-state-metrics:kube-state-metrics通过监听 API Server 生成有关资源对象的状态指标,主要关注元数据,比如 Dep

    2024年02月21日
    浏览(37)
  • k8s1.28.8版本安装prometheus并持久化数据

    本文参考 前置要求: 已经部署了NFS或者其他存储的K8s集群. 这里注意networkpolicies网络策略问题,可以后面删除这个策略,这里可以查看我之前的文档。 部署kube-prometheus 这里是配置好才执行这个,我们还没有配置存储什么的需要进行修改 持久化数据我这里用的是NFS创建动态的

    2024年04月15日
    浏览(31)
  • Prometheus+Grafana监控K8S集群(基于K8S环境部署)

    1、服务器及K8S版本信息: IP地址 主机名称 角色 K8S版本 16.32.15.200 master-1 Master节点 v1.23.0 16.32.15.201 node-1 Node节点 v1.23.0 16.32.15.202 node-2 Node节点 v1.23.0 2、部署组件版本: 序号 名称 版本 作用 1 Prometheus v2.33.5 收集、存储和处理指标数据 2 Node_exporter v0.16.0 采集服务器指标,如CP

    2024年02月04日
    浏览(69)
  • 使用大卫的k8s监控面板(k8s+prometheus+grafana)

    书接上回,对EKS(AWS云k8s)启用AMP(AWS云Prometheus)监控+AMG(AWS云 grafana),上次我们只是配通了EKS+AMP+AMG的监控路径。这次使用一位大卫老师的grafana的面板,具体地址如下: https://grafana.com/grafana/dashboards/15757-kubernetes-views-global/ 为了想Prometheus暴露一些有用的性能指标,需要在

    2024年04月23日
    浏览(107)
  • K8S结合Prometheus构建监控系统

    一、Prometheus简介 1、Prometheus基本介绍 数据模型:Prometheus 使用时间序列数据模型来存储监控数据。时间序列由一个唯一的指标名称和一组键值对标签组成,代表了某个指标在特定时间点的数值。这种数据模型非常适合度量指标的变化和趋势。 数据采集:Prometheus 支持多种数据

    2024年02月03日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包