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

浦东手机网站建设青岛公司建站

浦东手机网站建设,青岛公司建站,Spring做网站和什么,乐清网站制作公司有哪些本文介绍![如何使用Opentelemetryjaeger实现分布式链路追踪] 关于opentelemetry的介绍可以看下面的文章 https://blog.csdn.net/qq_62368250/article/details/143516314本文中相关图片以及源代码地址 https://github.com/wuchenyanghaoshuai/others/blob/main/step39/README.…本文介绍![如何使用Opentelemetryjaeger实现分布式链路追踪] 关于opentelemetry的介绍可以看下面的文章 https://blog.csdn.net/qq_62368250/article/details/143516314本文中相关图片以及源代码地址 https://github.com/wuchenyanghaoshuai/others/blob/main/step39/README.md 如果有在测试用有任何使用当中的问题请与我联系1. 安装CertManager 首选 step01 # 地址在 https://cert-manager.io/docs/installation/kubectl # 请注意我部署的时候k8s集群1.23.1 如果是低于我这个版本的话,会对go环境支持的不是这么友好 # 去官方github去下载跟k8s集群版本对应的yaml文件我这里使用的是v1.13.6 # 可以先wget下来然后查看yaml里的具体内容然后再apply # 如果你的空k8s版本低于1.19.0 可以去github里寻找低版本的yaml一般会有版本对照表2. 安装Jaeger all-in-one模式 step02 # 我这里使用的ingress暴露的你也可以使用nodeport或者ingress暴露 # 关于image,我这里使用的是官方的镜像转存到阿里云cr的apiVersion: apps/v1 kind: Deployment metadata:name: jaeger spec:replicas: 1selector:matchLabels:app: jaegertemplate:metadata:labels:app: jaegerspec:containers:- name: jaegerimage: jaegertracing/all-in-one:latest# image: registry.cn-hangzhou.aliyuncs.com/wuchenyang/jaegertracing-all-in-one:latest # 阿里云镜像env:- name: COLLECTOR_OTLP_ENABLEDvalue: trueports:- containerPort: 16686- containerPort: 14268 --- apiVersion: v1 kind: Service metadata:name: jaeger spec:selector:app: jaegertype: ClusterIPports:- name: uiport: 16686targetPort: 16686- name: collectorport: 14268targetPort: 14268- name: httpprotocol: TCPport: 4318targetPort: 4318- name: grpcprotocol: TCPport: 4317targetPort: 4317 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: ingress-jagernamespace: default spec:ingressClassName: nginxrules:- host: jager.wuchenyangzhendehaoshuai.comhttp:paths:- backend:service:name: jaegerport:number: 16686path: /pathType: ImplementationSpecific3. 安装opentelemetry-operator step03 #opentelemetry-operator与k8s版本有关需要根据k8s版本进行安装具体看具体看下面的地址 # https://github.com/open-telemetry/opentelemetry-operator/blob/main/docs/compatibility.md # 如果你的k8s集群高于1.23 直接看这个md里的对照表就行如果低于1.23需要看下面的地址(本人1.23.1)里的对照关系 # https://github.com/open-telemetry/opentelemetry-operator/tree/v0.85.0 || k8s 1.22.1 # 然后在tag里找到v0.100.0 的installation manifest for kubernetes 右键复制链接地址 ,然后在终端wget 即可 # 在终端执行 kubectl apply -f opentelemetry-operator-v0.100.0.yaml # 查看是否安装成功 kubectl get pod -n opentelemetry-operator-system# 如果下载不了image可以使用我的镜像(我pull下来tag的) #registry.cn-hangzhou.aliyuncs.com/wuchenyang/kube-rbac-proxy:v0.13.1 #registry.cn-hangzhou.aliyuncs.com/wuchenyang/opentelemetry-operator:0.100.0 #实际使用的时候也可以将镜像pull下来tag成官方的image4. 部署otel-collector 跟Instrumentation step04 # cat 04otlp/Instrumentation.yaml #这个因为我是java的demo所以下面那块写了java如果是python或者go去官方照文档即可都是一样的这里刚刚好有一个go的demo跟一个java的demo # 有了这个配置以后你可以在你的deploy里添加一个annotation instrumentation.opentelemetry.io/inject-java: true #下面有我的deployoy 配置 apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata:name: instrumentation-sample spec:propagators:- tracecontext- baggage- b3sampler:type: parentbased_traceidratioargument: 1env:- name: OTEL_EXPORTER_OTLP_ENDPOINTvalue: otel-collector.default:4318java: env:- name: OTEL_EXPORTER_OTLP_ENDPOINTvalue: http://otel-collector.default:4317go: env:- name: OTEL_EXPORTER_OTLP_ENDPOINTvalue: http://otel-collector.default:4318#其他配置的代码 java: # Java 特定配置env:- name: OTEL_EXPORTER_OTLP_ENDPOINTvalue: http://otel-collector.default:4317 # gRPC 端点可选覆盖全局python: # Python 特定配置env:- name: OTEL_EXPORTER_OTLP_ENDPOINTvalue: http://otel-collector.default:4317 # gRPC 端点可选覆盖全局go: # Go 特定配置实验性 eBPFenv:- name: OTEL_EXPORTER_OTLP_ENDPOINTvalue: http://otel-collector.default:4318 # gRPC 端点可选覆盖全局# cat 04otlp/otlp.yaml #这个配置就是otel-collector的配置这里我使用的是jaeger的exporter你也可以使用其他的exporter #因为jager的后端没有配置es等存储我这里使用的本机所以数据保存不了30天往上 apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata:name: otel spec:config:receivers:otlp:protocols:grpc: {}http: {}processors:memory_limiter:check_interval: 1slimit_percentage: 75spike_limit_percentage: 15batch:send_batch_size: 10000timeout: 10sexporters:otlp/jaeger:endpoint: jaeger.default:4317tls:insecure: trueservice:pipelines:traces:receivers: [otlp]processors: [memory_limiter, batch] # 添加 processorsexporters: [otlp/jaeger]5. 部署Java-Demo step05 #可以直接使用我的yaml #svc那块你可以直接用ingress或者nodeport都可以我是用了ingress本地做了域名映射 #可以清晰的看到下面的yaml使用了annotation instrumentation.opentelemetry.io/inject-java: true #如果是go项目的话需要添加instrumentation.opentelemetry.io/inject-go: true还有一个需要注意的地方go项目需要单独提权限,而且是必须的 # 具体看官方文档的267行-287行,https://github.com/open-telemetry/opentelemetry-operator/blob/v0.85.0/README.md #yaml #securityContext: # capabilities: # add: # - SYS_PTRACE # privileged: true # runAsUser: 0 # apiVersion: apps/v1 kind: Deployment metadata:name: java-demo spec:strategy:type: RollingUpdaterollingUpdate:maxSurge: 1maxUnavailable: 1replicas: 1selector:matchLabels:app: java-demotemplate:metadata:labels:app: java-demoannotations:prometheus.io/scrape: trueprometheus.io/port: 9180prometheus.io/path: /metricsinstrumentation.opentelemetry.io/inject-java: truespec:containers:- name: java-demoimage: registry.cn-hangzhou.aliyuncs.com/wuchenyang/java-demo:test-b0cbb8ports:- containerPort: 8080readinessProbe:httpGet:path: /port: 8080initialDelaySeconds: 20periodSeconds: 5timeoutSeconds: 3failureThreshold: 2resources:requests:memory: 512Micpu: 0.5limits:memory: 1024Micpu: 1env:- name: JAVA_OPTSvalue: -Xms1g -Xmx1g -javaagent:/data/agent/skywalking-agent.jar -javaagent:/data/agent/jmx_prometheus_javaagent-0.14.0.jar9180:/data/agent/jmx_exporter.yml- name : PROFILEvalue: test --- apiVersion: v1 kind: Service metadata:name: java-demo spec:selector:app: java-demoports:- protocol: TCPport: 8080targetPort: 8080nodePort: 30000type: NodePort --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: ingress-java-demo spec:ingressClassName: nginxrules:- host: test.wuchenyangzhendehaoshuai.comhttp:paths:- backend:service:name: java-demoport:number: 8080path: /pathType: ImplementationSpecific6. 访问java-demo以及jaeger-ui 浏览器输入 http://test.wuchenyangzhendehaoshuai.com/ 点击页面选择数据选择提交 浏览器输入 http://jager.wuchenyangzhendehaoshuai.com/ 查询刚刚提提交动作m的trace 7. Go项目demo step06 注意 如果你要使用我的go程序需要提前在你的环境里准备好mysql环境并且创建好数据库表结构可以参考我的sql文件具体看docker目录中详细解释 由于go的ebpf插桩在operator的0.88版本开始我的k8s版本为1.23.1,所以我本次使用的是v0.100.0做测试的时候一定要看好自己的k8s版本与operator版本的对应关系 按照官方文档需要在注解里添加主程序的位置 Go 自动注入的实现依赖于 eBPFuprobe但当前环境不支持所需的内核功能。 由于我的系统使用的是centos7.9内核版本默认的是3.10.x所以需要升级内核版本要不然的话在go自动插桩的时候那个会直接报错但是不会影响服务正常 如果你是centos7.9的话得需要升级一下如果你的内核高于我这个版本5.2.x就可以,则不需要 go跟java服务不一样的地方在于java是以initcontainer的方式go是sidcar的方式go项目启动以后是2/2的方式,如果你kubectl get pods 去看的话 升级步骤如下(所有节点都需要执行)参考文档: https://www.jb51.net/article/265146.htm下载地址: http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-5.6.14-1.el7.elrepo.x86_64.rpmwget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-5.6.14-1.el7.elrepo.x86_64.rpmrpm -ivh *.rpmgrub2-set-default 0grub2-mkconfig -o /boot/grub2/grub.cfgreboot[rootkm ~]# uname -r5.6.14-1.el7.elrepo.x86_64# 我是使用ingress暴露可以根据自身情况选择使用nodeport apiVersion: apps/v1 kind: Deployment metadata:name: gin-demo spec:replicas: 1selector:matchLabels:app: gin-demostrategy:type: RollingUpdaterollingUpdate:maxSurge:maxUnavailable: 0minReadySeconds: 5revisionHistoryLimit: 10template:metadata:labels:app: gin-demoannotations:instrumentation.opentelemetry.io/inject-go: trueinstrumentation.opentelemetry.io/otel-go-auto-target-exe: /app/maininstrumentation.opentelemetry.io/container-names: gin-demospec:containers:- name: gin-demoimage: registry.cn-hangzhou.aliyuncs.com/wuchenyang/gin-demo:v4securityContext:privileged: truerunAsUser: 0imagePullPolicy: Alwaysports:- containerPort: 8081readinessProbe:httpGet:path: /pingport: 8081initialDelaySeconds: 20periodSeconds: 5timeoutSeconds: 3failureThreshold: 2resources:requests:memory: 256Micpu: 0.5limits:memory: 512Micpu: 1 --- apiVersion: v1 kind: Service metadata:name: gin-demo-servicenamespace: default spec:ports:- name: httpport: 8081targetPort: 8081protocol: TCPtype: NodePortselector:app: gin-demo --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: ingress-gin-demo spec:ingressClassName: nginxrules:- host: gin.wuchenyangzhendehaoshuai.comhttp:paths:- backend:service:name: gin-demo-serviceport:number: 8081path: /pathType: ImplementationSpecific8. 访问Go项目以及jaeger-ui 浏览器输入 gin.wuchenyangzhendehaoshuai.com 登录后台系统(用户名密码为admin/password),默认是/login页面,也可以直接/home跳过登录 浏览器输入 jaeger.wuchenyangzhendehaoshuai.com,选择相对应的服务
http://www.dnsts.com.cn/news/103136.html

相关文章:

  • 票务网站做酒店推荐的目的杭州行业网页设计公司
  • .net网站 作品网站系统繁忙
  • 广州网站定制开发网站建设公司不挣钱的原因
  • 做餐饮网站直播软件推荐
  • 电商网站建设培训班网站建设开题报告中的问题
  • 办公用品网站建设可行性分析江门网站优化方案
  • 做陶瓷的公司网站计算机培训机构排名前十
  • 哪里有制作网站服务怎样做才能发布你的网站
  • 网站空间申请开通怎么创建游戏平台
  • 名字做头诗的网站北京网站制作与网站设计
  • 广东省建设工程安全协会网站南宁刚刚发生的事
  • php网站数据迁移青州市住房和城乡建设局网站
  • 上海 网站建设公司更换网站需要怎么做
  • 泰州网站建设开发网页链接提取
  • 蓝色网站模版济南最好的网站制作公司
  • 教育类网站开发文档wordpress显示同一分类的文章
  • 怎么找到php网站的首页面html如何提交网站给百度
  • 网站的结构是什么样的做亚马逊学英语有什么网站吗
  • 网站的切换语言都是怎么做的济南 网站 建设
  • 网页设计作业网站素材和效果图什么是网络营销传播
  • 凡科怎么做网站网站用什么系统好
  • 石家庄网站建设策略wordpress的主题
  • 王烨雄seo入门教学
  • WordPress主题DUX主题优化网站公司
  • 华云电力建设监理公司网站有没有做catalog的网站
  • 非寻服饰网站建设规划书网站运营维护工作 基本内容包括
  • 品牌的佛山网站建设个人电影网站备案
  • 带询盘外贸网站源码怎么做企业网站推广的方法
  • 金湖网站推广怎样查看别人网站流量
  • 怎做网站转app手机wap网站下载