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

运行在华为云kubernetes应用接入APM服务

1 APM概述

在云时代微服务架构下应用日益丰富,纷杂的应用异常问题接踵而来。应用运维面临巨大挑战:

  • 分布式应用关系错综复杂,应用性能问题分析定位困难,应用运维面临如何保障应用正常、快速完成问题定位、迅速找到性能瓶颈的挑战。
  • 应用体验差导致用户流失。运维人员如果无法实时感知并追踪体验差的业务,不能及时诊断应用异常,将严重影响用户体验。
  • 业务系统的应用多、分布广,跨系统、跨区域、跨应用的调用频繁,如何降低应用的管理和运维成本,提升应用运维的效率是迫切需要解决的问题。

华为云应用性能管理服务(Application Performance Management,简称APM)帮助运维人员快速发现应用的性能瓶颈,以及故障根源的快速定位,为用户体验保驾护航。无需修改代码,只需为应用安装一个APM Agent,就能够对该应用进行全方位监控,帮助您快速定位出错接口和慢接口、重现调用参数、发现系统瓶颈,从而大幅提升线上问题诊断的效率。目前支持JAVA、Python、Node.js、Go、Php、C++和.Net应用。

2 部署

2.1 部署JAVA示例应用

示例应用包含4个服务,ui服务是入口,其接口如下:

GET /start
GET /readtimeout

示例应用运行在名称为demo的namespace中,因此先创建它:

kubectl create ns demo

demo应用的yaml如下,直接apply到kubernetes集群。

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: acme-financial-uiname: acme-financial-uinamespace: demo
spec:replicas: 1selector:matchLabels:app: acme-financial-uitemplate:metadata:labels:app: acme-financial-uispec:containers:- env:image: swr.cn-south-1.myhuaweicloud.com/migrator/acme-financial-ui:v0.1name: uiports:- containerPort: 8081protocol: TCP
---
apiVersion: v1
kind: Service
metadata:labels:app: acme-financial-uiname: acme-financial-uinamespace: demo
spec:ports:- name: httpport: 8081protocol: TCPtargetPort: 8081selector:app: acme-financial-uitype: ClusterIP---apiVersion: apps/v1
kind: Deployment
metadata:labels:app: acme-financial-officename: acme-financial-officenamespace: demo
spec:replicas: 1selector:matchLabels:app: acme-financial-officetemplate:metadata:labels:app: acme-financial-officespec:containers:- env:image: swr.cn-south-1.myhuaweicloud.com/migrator/acme-financial-office:v0.1name: officeports:- containerPort: 8082protocol: TCP---apiVersion: v1
kind: Service
metadata:labels:app: acme-financial-officename: acme-financial-back-officenamespace: demo
spec:ports:- name: httpport: 8082protocol: TCPtargetPort: 8082selector:app: acme-financial-officetype: ClusterIP---apiVersion: apps/v1
kind: Deployment
metadata:labels:app: acme-financial-customername: acme-financial-customernamespace: demo
spec:replicas: 1selector:matchLabels:app: acme-financial-customertemplate:metadata:labels:app: acme-financial-customerspec:containers:- env:image: swr.cn-south-1.myhuaweicloud.com/migrator/acme-financial-customer:v0.1name: customerports:- containerPort: 8084protocol: TCP---apiVersion: v1
kind: Service
metadata:labels:app: acme-financial-customername: acme-financial-customernamespace: demo
spec:ports:- name: httpport: 8084protocol: TCPtargetPort: 8084selector:app: acme-financial-customertype: ClusterIP---apiVersion: apps/v1
kind: Deployment
metadata:labels:app: acme-financial-accountname: acme-financial-accountnamespace: demo
spec:replicas: 1selector:matchLabels:app: acme-financial-accounttemplate:metadata:labels:app: acme-financial-accountspec:containers:- env:image: swr.cn-south-1.myhuaweicloud.com/migrator/acme-financial-account:v0.1name: accountports:- containerPort: 8083protocol: TCP---
apiVersion: v1
kind: Service
metadata:labels:app: acme-financial-accountname: acme-financial-accountnamespace: demo
spec:ports:- name: httpport: 8083protocol: TCPtargetPort: 8083selector:app: acme-financial-accounttype: ClusterIP

在这里插入图片描述

2.2 创建APM应用

在这里插入图片描述

2.3 为JAVA应用注入探针

在华为云kubernetes控制台完成操作即可,在所有deployment上执行相关操作:
在这里插入图片描述
在这里插入图片描述
等待三分钟,APM应用显示探针都正常,效果如下:
在这里插入图片描述


2.4 使用华为云ELB暴露UI服务

创建一个独享型ELB,内网IP地址是10.0.13.177:
在这里插入图片描述

创建ingress资源,并关联刚刚创建的ELB实例:
在这里插入图片描述

创建ingress完成后,效果如下图所示:

在这里插入图片描述

3 浏览器访问测试示例应用

浏览器访问ELB的内网地址:
在这里插入图片描述


在APM应用中查看调用链:
在这里插入图片描述


在APM应用中查看微服务的指标:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4 小结

本文通过在华为云的实践,介绍运行在kubernetes集群的JAVA应用通过JAVA Agent技术接入APM服务,非常有画面感地让大家知道APM将服务很大程度上变成了白盒,强力辅助程序员发现应用的性能问题。

http://www.xdnf.cn/news/7472.html

相关文章:

  • spark任务的提交流程
  • 不同净化技术(静电 / UV / 湿式)的性能对比研究
  • 刷题记录(5)链表相关操作
  • 门店管理五大痛点解析:如何用数字化系统实现高效运营
  • HomeAssistant开源的智能家居docker快速部署实践笔记(CentOS7)
  • 在tp6模版中加减法
  • 大屏放大缩小自适应
  • 微软的 Windows Linux 子系统现已开源
  • 采集需要登录网站的教程
  • HTTP 协议的发展历程及技术演进
  • 使用亮数据代理IP+Python爬虫批量爬取招聘信息训练面试类AI智能体(附完整源码)
  • jmeter转义unicode变成中文
  • docker- Harbor 配置 HTTPS 协议的私有镜像仓库
  • Rofin PowerLine E Air维护和集成手侧激光Maintenance and Integration Manual
  • 能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了
  • 使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程
  • 科技赋能·长效治理|无忧树建筑修缮渗漏水长效治理交流会圆满举行!
  • 企业级 Go 多版本环境部署指南-Ubuntu CentOS Rocky全兼容实践20250520
  • C# Task 与 SynchronizationContext
  • 文件包含靶场实现
  • 【移动应用安全】Android系统安全与保护机制
  • WPF技巧-常用的Converter集合(更新ing)
  • Spring Boot-Swagger离线文档(插件方式)
  • 【Redis】跳表结构
  • LSTM语言模型验证代码
  • springboot框架 集成海康ISUP-SDK 并实现 协议透传给设备下发指令!
  • 【鸿蒙开发】安全
  • centos 9 Kickstart + Ansible自动化部署 —— 筑梦之路
  • 软考软件评测师——数据库系统应用
  • spark-shuffle 类型及其对比