k8s部署grafana beyla

k8s部署grafana beyla

OS:
Static hostname: test
Icon name: computer-vm
Chassis: vm
Machine ID: 22349ac6f9ba406293d0541bcba7c05d
Boot ID: 83bb7e5dbf27453c94ff9f1fe88d5f02
Virtualization: vmware
Operating System: Ubuntu 22.04.4 LTS
Kernel: Linux 5.15.0-105-generic
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform

kubespray version:
2.25.0

kubernetes version:
1.29.5

部署测试用nginx

cat > nginx.yaml <<EOF
kind: Deployment
apiVersion: apps/v1
metadata:name: docs
spec:replicas: 2selector:matchLabels:app: docstemplate:metadata:labels:app: docsspec:containers:- name: docs-serverimage: httpd:latestports:- containerPort: 80protocol: TCPname: http
---
apiVersion: v1
kind: Service
metadata:name: docs
spec:selector:app: docsports:- protocol: TCPport: 80
---
kind: Deployment
apiVersion: apps/v1
metadata:name: website
spec:replicas: 2selector:matchLabels:app: websitetemplate:metadata:labels:app: websitespec:containers:- name: website-serverimage: dockerhub.timeweb.cloud/httpd:latestports:- containerPort: 80protocol: TCPname: http
---
apiVersion: v1
kind: Service
metadata:name: website
spec:selector:app: websiteports:- protocol: TCPport: 80
EOF
# 创建
kubectl apply -f nginx.yaml
# 转发端口
kubectl port-forward services/website 8080:80
kubectl port-forward services/docs 8081:80

部署grafana beyla

# 创建命名空间
kubectl create namespace beyla
# 创建serviceaccount
cat > beyla-serviceaccount.yaml <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:namespace: beylaname: beyla
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: beyla
rules:- apiGroups: ["apps"]resources: ["replicasets"]verbs: ["list", "watch"]- apiGroups: [""]resources: ["pods"]verbs: ["list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: beyla
subjects:- kind: ServiceAccountname: beylanamespace: beyla
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: beyla
EOFkubectl apply -f beyla-serviceaccount.yamlcat > beyla.yaml <<EOF
apiVersion: v1
kind: ConfigMap
metadata:namespace: beylaname: beyla-config
data:beyla-config.yml: |# this is required to enable kubernetes discovery and metadataattributes:kubernetes:enable: true# this will provide automatic routes report while minimizing cardinalityroutes:unmatched: heuristic# let's instrument only the docs serverdiscovery:services:- k8s_deployment_name: "^docs$"# uncomment the following line to also instrument the website server# - k8s_deployment_name: "^website$"
---
apiVersion: apps/v1
kind: DaemonSet
metadata:namespace: beylaname: beyla
spec:selector:matchLabels:instrumentation: beylatemplate:metadata:labels:instrumentation: beylaspec:serviceAccountName: beylahostPID: true # mandatory!containers:- name: beylaimage: dockerhub.timeweb.cloud/grafana/beyla:1.2imagePullPolicy: IfNotPresentsecurityContext:privileged: true # mandatory!readOnlyRootFilesystem: truevolumeMounts:- mountPath: /configname: beyla-config- mountPath: /var/run/beylaname: var-run-beylaenv:- name: BEYLA_CONFIG_PATHvalue: "/config/beyla-config.yml"- name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINTvalue: "http://10.1.1.71:4318/v1/traces"- name: OTEL_EXPORTER_OTLP_TRACES_PROTOCOLvalue: "http/protobuf"
#            - name: OTEL_EXPORTER_OTLP_HEADERS
#              valueFrom:
#                secretKeyRef:
#                  name: grafana-credentials
#                  key: otlp-headersvolumes:- name: beyla-configconfigMap:name: beyla-config- name: var-run-beylaemptyDir: {}
EOFkubectl apply -f beyla.yaml

安装grafana

apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/oss/release/grafana_10.4.2_amd64.deb
dpkg -i grafana_10.4.2_amd64.deb
systemctl start grafana-server
systemctl enable grafana-server

安装prometheus

wget --no-check-certificate https://github.com/prometheus/prometheus/releases/download/v2.45.4/prometheus-2.45.4.linux-amd64.tar.gz
tar -zxf prometheus-2.45.4.linux-amd64.tar.gz
mkdir -p /etc/prometheus
mkdir -p /export/prometheus/data
cp -r prometheus-2.45.4.linux-amd64/* /etc/prometheus/
mv /etc/prometheus/prometheus /usr/local/bin/
mv /etc/prometheus/promtool /usr/local/bin/# 配置抓取promttheus
cat <<EOF >/etc/prometheus/prometheus.yml
global:
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093
rule_files:# - "first_rules.yml"# - "second_rules.yml"
scrape_configs:- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]- job_name: "beyla"static_configs:- targets: ["localhost:9101", "localhost:9102", "localhost:9103"]
EOF
# 启动
# 使用--web.enable-remote-write-receiver启用远程写入接口来接收tempo的service graph数据,地址为/api/v1/write
screen -dmS prom prometheus --config.file=/etc/prometheus/prometheus.yml --web.enable-remote-write-receiver --storage.tsdb.path=/export/prometheus/data --web.console.libraries=/etc/prometheus/console_libraries --web.console.templates=/etc/prometheus/consoles --storage.tsdb.retention=7d &

安装tempo

tempo部署
tempo配置

安装

curl -Lo tempo_2.4.1_linux_amd64.deb https://github.com/grafana/tempo/releases/download/v2.4.1/tempo_2.4.1_linux_amd64.deb
echo 2fdd167cbb00d732435123a254469ec4cfde3c525a4ec89d235423a5e9abc4b3 \tempo_2.4.1_linux_amd64.deb | sha256sum -c
dpkg -i tempo_2.4.1_linux_amd64.deb

配置

cat > /etc/tempo/config.yml <<EOF
server:http_listen_port: 3200distributor:receivers:otlp:protocols:http:grpc:compactor:compaction:block_retention: 48hmetrics_generator:registry:external_labels:source: tempocluster: linux-microservicesstorage:path: /tmp/tempo/generator/walremote_write:- url: http://localhost:9090/api/v1/writesend_exemplars: truestorage:
#   trace:
#     backend: s3
#     s3:
#       endpoint: s3.us-east-1.amazonaws.com
#       bucket: grafana-traces-data
#       forcepathstyle: true
#       # set to false if endpoint is https
#       insecure: true
#       access_key: # TODO - Add S3 access key
#       secret_key: # TODO - Add S3 secret keytrace:backend: localwal:path: /tmp/tempo/wallocal:path: /tmp/tempo/blocks
overrides:defaults:metrics_generator:processors: [service-graphs, span-metrics]
EOF

启动

systemctl start tempo.service
systemctl enable tempo.service
systemctl is-active tempo

生成trace数据

访问生成trace信息

curl http://localhost:8080
curl http://localhost:8080/foo
curl http://localhost:8081
curl http://localhost:8081/foo

tail pod日志

kubectl logs -f beyla-spb9s -n beyla

grafana面板配置

添加tempo源并启用node graph

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

启用service graph

prometheus需要使用–web.enable-remote-write-receiver启用远程写入接口来接收tempo的service graph数据,地址为/api/v1/write
prometheus http API

在explorer中搜索service graph
在这里插入图片描述

设置hosts

# vim /etc/hosts
127.0.0.1 prometheus

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/353862.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#.Net筑基-类型系统①基础

C#.Net的BCL提供了丰富的类型&#xff0c;最基础的是值类型、引用类型&#xff0c;而他们的共同&#xff08;隐私&#xff09;祖先是 System.Object&#xff08;万物之源&#xff09;&#xff0c;所以任何类型都可以转换为Object。 01、数据类型汇总 C#.NET 类型结构总结如下图…

使用@Value注解无法成功获取配置文件内容,常见原因

在日常的java开发中&#xff0c;我们经常会遇到一些需要将信息写在配置文件的要求&#xff0c;比如文件的输出目录&#xff0c;输入目录的。当在配置文件中写入对应的目录配置时&#xff0c;那么怎么读取配置文件的内容就需要我们去了解了。 在java中一般使用Value这个注解去读…

SSM小区车辆信息管理系统-计算机毕业设计源码06111

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

【机器学习】第5章 朴素贝叶斯分类器

一、概念 1.贝叶斯定理&#xff1a; &#xff08;1&#xff09;就是“某个特征”属于“某种东西”的概率&#xff0c;公式就是最下面那个公式。 2.朴素贝叶斯算法概述 &#xff08;1&#xff09;是为数不多的基于概率论的分类算法&#xff0c;即通过考虑特征概率来预测分类。 …

ubuntu如何查看ip地址

ubuntu如何查看ip地址 方法一&#xff1a;使用ifconfig方法二&#xff1a;使用ip命令 方法一&#xff1a;使用ifconfig 命令行输入ifconfig&#xff1a; 这里inet后跟的内容就是IP地址。 方法二&#xff1a;使用ip命令 命令行输入&#xff1a;ipa ddr&#xff1a; 这里ine…

可抑制癌细胞增殖!慧湖药学院联手天津医科大,研发新型肿瘤抑制蛋白降解剂 dp53m

或许很多人不知道&#xff0c;其实我们每个人体内都存在癌细胞。 人体每天都在进行着数十亿甚至上百亿细胞的新生与更替&#xff0c;在这个代谢过程中&#xff0c;DNA 复制难免会「出错」&#xff0c;比如会出现基因突变&#xff0c;让正常的细胞变成原位癌细胞。不过&#xff…

最新版首发 | 手把手教你安装 Vivado2024.1(附安装包)

Q&#xff1a;Vivado出2024版了&#xff01;不知迪普微有没有对应的安装包呢&#xff1f; A&#xff1a;有的&#xff01;回复“Vivado2024.1”即可获得相应安装包哦~ Q&#xff1a;好哒~但是我不会安装&#xff0c;可否安排一期安装教程&#xff1f; A&#xff1a;立马安排&…

ONES 功能上新|ONES 开放平台新功能一览

ONES 开放平台提供 OpenAPI、插槽、事件等能力&#xff0c;以便开发者通过插件&#xff0c;实现第三方集成和流程定制&#xff0c;满足客户的二次开发需求。 支持在任意工作项视图的详情表单中&#xff0c;添加插件的自定义标签页&#xff0c;以满足插件开发者在工作项详情页显…

人力资源招聘社会校企类型招聘系统校园招聘小程序

校企社会人力资源招聘小程序&#xff1a;开启高效招聘新时代 &#x1f680;开篇&#xff1a;打破传统&#xff0c;开启招聘新篇章 在快速发展的现代社会&#xff0c;人力资源招聘已经成为企业和学校共同关注的重要议题。为了更高效、便捷地满足双方的招聘需求&#xff0c;一款…

【NoSQL数据库】Redis Cluster集群(含redis集群扩容脚本)

Redis Cluster集群 Redis ClusterRedis 分布式扩展之 Redis Cluster 方案功能数据如何进行存储 redis 集群架构集群伸缩向集群中添加一个新的master节点&#xff0c;并向其中存储 num10 .脚本对redis集群扩容缩容&#xff0c;脚本参数为redis集群&#xff0c;固定从6001移动200…

Mac用虚拟机玩游戏很卡 Mac电脑玩游戏怎么流畅运行 苹果电脑怎么畅玩Windows游戏

对于许多Mac电脑用户而言&#xff0c;他们经常面临一个令人头疼的问题&#xff1a;在虚拟机中玩游戏时卡顿严重&#xff0c;影响了游戏体验。下面我们将介绍Mac用虚拟机玩游戏很卡&#xff0c;Mac电脑玩游戏怎么流畅运行的相关内容。 一、Mac用虚拟机玩游戏很卡 下面我们来看…

NUC 14 Pro+:解锁AI前沿,体验科技之美

NUC 14 Pro不仅是一台迷你主机&#xff0c;更是生活品质的体现。如果你也是细节控&#xff0c;那这篇文章或许是你需要的。 超小体积 造型精致 NUC 14 Pro作为迷你PC拥有约0.66L的超小体积&#xff0c;如果你对升没有概念&#xff0c;那你可以想象&#xff1a;它的机箱面积144…

swagger下载文件名中文乱码、swagger导出文件名乱码、swagger文件导出名称乱码、解决swagger中文下载乱码bug

文章目录 一、场景描述&#xff1a;swagger导出文件名称乱码二、乱码原因三、解决方法3.1、方法一、在浏览器中输入地址下载3.2、方法二、swagger升级为2.10.0及以上 四、可能遇到的问题4.1、DocumentationPluginsManager.java:152 一、场景描述&#xff1a;swagger导出文件名称…

Pentest Muse:一款专为网络安全人员设计的AI助手

关于Pentest Muse Pentest Muse是一款专为网络安全研究人员和渗透测试人员设计和开发的人工智能AI助手&#xff0c;该工具可以帮助渗透测试人员进行头脑风暴、编写Payload、分析代码或执行网络侦查任务。除此之外&#xff0c;Pentest Muse甚至还能够执行命令行代码并以迭代方式…

Linux C编译器从零开发三

AST语法树 BNF抽象 expr equality equality relational ("" relational | "!" relational)* relational add ("<" add | "<" add | ">" add | ">" add)* add mul ("" …

重生奇迹MU 探秘奇幻世界

"探秘奇幻世界&#xff0c;成就无尽荣耀&#xff01;欢迎来到重生奇迹MU&#xff0c;一个永不落幕的游戏乐园。在这里&#xff0c;你可以尽情挑战各种困难&#xff0c;发掘神秘宝藏&#xff0c;还可与来自世界各地的玩家一起创造无尽的历史。为了帮助你更好地探索游戏世界…

mysql中返回日期格式带有T、Java解决返回日期格式带 ‘T‘ 问题、MySQL查询日期为什么带T、java.util.Date()类型为什么有T

文章目录 一、场景描述&#xff1a;Mysql返回日期格式带有T二、解决方法2.1、方法一&#xff1a;通过注解格式化2.2、方法二&#xff1a;通过全局配置2.3、方法三&#xff1a;查询时手动转换时间格式 三、mysql 数据库时间类型数据为什么有T3.1、什么是ISO 8601格式 四、java中…

C语言实现五子棋教程

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

现代密码学-国密算法

商用密码算法种类 商用密码算法 密码学概念、协议与算法之间的依赖关系 数字签名、证书-公钥密码、散列类算法 消息验证码-对称密码 &#xff0c;散列类 安全目标与算法之间的关系 机密性--对称密码、公钥密码 完整性--散列类算法 可用性--散列类、公钥密码 真实性--公…

Boost 网络库

asio 网络编程的基本流程创建 socket绑定acceptor连接指定的端点服务器接受连接 网络编程的基本流程 服务端 1&#xff09;socket----创建socket对象。 2&#xff09;bind----绑定本机ipport。 3&#xff09;listen----监听来电&#xff0c;若在监听到来电&#xff0c;则建…