datadog 全观测性初体验
安装测试环境
我们使用Elastic在github上的项目apm-integration-testing,来生成对应的APM数据。我们使用这个项目的整个测试环境中包含了用于demo的前端,后端,数据库的实例,包含java
、python
、node.js
、ruby
、go
、.net
、php
等不同语言编写的应用程序,也包含了数据库(postgres
)、搜索引擎(elasticsearch
)、缓存(redis
),通过对这样一个环境进行可观测性的验证,我们可以充分了解datadog的功能。
通过以下命令下载该项目后:
git clone https://github.com/elastic/apm-integration-testing
cd apm-integration-testing
可以在docker环境下启动多个应用程序:
./scripts/compose.py start --release \
--no-elasticsearch --no-kibana --with-opbeans-java \
--with-opbeans-go --with-opbeans-python --with-opbeans-node --with-opbeans-rum
当这个程序运行之后,我们可以立即停止,compose.py
会在当前目录下生产一个docker-compose.yml
文件。
在这个案例中,我打算在K8S上运行整个环境,因此,我使用了
kompose convert
将docker-compose.yml
文件转成系列K8S的yaml
文件
然后,创建 相应 K8S 资源
kubectl create -f k8s-pgdata-persistentvolumeclaim.yaml
kubectl create -f postgres-claim0-persistentvolumeclaim.yaml
kubectl create -f postgres-deployment.yaml
kubectl create -f postgres-service.yaml
kubectl create -f redis-deployment.yaml
kubectl create -f redis-service.yaml
kubectl create -f opbeans-node-claim0-persistentvolumeclaim.yaml
kubectl create -f opbeans-node-deployment.yaml
kubectl create -f opbeans-node-service.yaml
kubectl create -f opbeans-java-deployment.yaml
kubectl create -f opbeans-java-service.yaml
kubectl create -f opbeans-python-deployment.yaml
kubectl create -f opbeans-python-service.yaml
kubectl create -f opbeans-go-deployment.yaml
kubectl create -f opbeans-go-service.yaml
kubectl create -f opbeans-load-generator-deployment.yaml
这里需要手动的将sql的数据写入到postgres
里面:
kubectl exec -it postgres-589d45546c-hxr6z -- /bin/bashroot@postgres-589d45546c-hxr6z: cat <<EOF > data.sql
"*****"
EOFroot@postgres-589d45546c-hxr6z: psql -U postgres -d opbeans -a -f data.sql
最终,整个分布式应用程序跑在K8S上:
lexlideMacBook-Pro:k8s lex.li$ kubectl get pods
NAME READY STATUS RESTARTS AGE
opbeans-go-655677c5b7-6k2n4 1/1 Running 0 3h11m
opbeans-java-5bbd48f5d5-b6dxd 1/1 Running 0 3h11m
opbeans-load-generator-5fbc458d6b-lw4p2 1/1 Running 0 3h10m
opbeans-node-8457fdbb75-rnsmz 1/1 Running 0 3h11m
opbeans-python-7bb87db6fd-dwrn5 1/1 Running 0 3h11m
postgres-589d45546c-hxr6z 1/1 Running 0 3h11m
redis-6f74b66cb6-gsszd 1/1 Running 0 3h11m
lexlideMacBook-Pro:k8s lex.li$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.80.80.1 <none> 443/TCP 450d
mysql-service ClusterIP 10.80.94.52 <none> 3306/TCP 226d
opbeans-go ClusterIP 10.80.80.7 <none> 3000/TCP 3h12m
opbeans-java ClusterIP 10.80.81.50 <none> 3000/TCP 3h12m
opbeans-node LoadBalancer 10.80.94.202 34.126.112.49 3000:31934/TCP 3h11m
opbeans-python ClusterIP 10.80.83.33 <none> 3000/TCP 3h12m
postgres ClusterIP 10.80.86.13 <none> 5432/TCP 3h12m
redis ClusterIP 10.80.81.30 <none> 6379/TCP 3h12m
访问:http://34.126.112.49:3000,确认正常运行
安装datadog agent
参考datadog agent在K8S上的安装手册
我选择以DaemonSet的命令安装,先配置agent的权限:
kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/rbac/clusterrole.yaml"kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/rbac/serviceaccount.yaml"kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/rbac/clusterrolebinding.yaml"
创建K8S secret,包含Datadog API Key:
echo -n 'e094bed61947b1ad9ca25f266b8fe5de' | base64kubectl create secret generic datadog-agent --from-literal api-key="ZTA5NGJlZDYxOTQ3YjFhZDljYTI1ZjI2NmI4ZmU1ZGU=" --namespace="default"
按照剩余步骤配置:
然后检查:
体验datadog
进入控制UI,可以看到所有已安装和被监控的内容:
和Elastic类似,可以先从Infrastructure开始查看:
总结
这个产品从用户体验,易用性等方面算是同类产品里面做到极致了。。。功能上的槽点不多,而亮点颇多,值得大家学习
datadog 全观测性初体验相关推荐
- 华为晟思Mindspore初体验:全场景统一式框架与函数式微分编程
华为晟思Mindspore初体验:全场景统一式框架与函数式微分编程 1. Mindspore的全场景统一式框架 2. Mindspore的自动微分技术(Automatic Differentiatio ...
- 升级鸿蒙系统效果,鸿蒙系统初体验 全方位体验升级[多图]
鸿蒙系统是近期华为发布的,这个的话,在更新了以后,就能够看到了,不过只是对于某些适配机型来说是这样,其他的话,是没有的,很多用户都十分的好奇,也是在观望当中,这个的话,到底应不应该去升级,效果怎么样呢 ...
- 【全观测系列】Elasticsearch应用性能监控实践
简介:本文介绍了应用性能监控的应用价值以及解决方案等. 1.什么是全观测? 要了解全观测,我们先看看传统运维存在哪些问题. 数据孤岛,分散在不同部门,分析排查故障困难: 多个厂商的多种工具,无法自动化 ...
- vSphere 7 Kubernetes 初体验
vSphere 7 Kubernetes 初体验 分类专栏: NSX-T WCP K8S 文章标签: paas 版权 有关vSphere7 with WCP,即整合Kubernetes的具体介绍,请参 ...
- SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事
本人是一名热爱网络工程的菜鸡,是一只兴趣使然的菜鸡,我目前发的blog只是作为我学习阶段的一个总结,分享给大家,希望大家一起交流,一起探讨,文章中有不正确的知识或言论请大家指出,同时我觉得对网络感兴趣 ...
- 华为智慧屏和鸿蒙系统对比,鸿蒙初体验:荣耀智慧屏跨系统交互构建新生态
2013年的初夏,当年著名的互联网企业乐视正式发布了第一代互联网电视X60,它将过去的机顶盒与电视相融合,直接接入互联网视频内容,正式拉开了互联网电视的大幕. 如今6年过去,众多电视品牌起起伏伏,电视 ...
- 设计之初体验—我谈产品设计
设计之初体验-我谈产品设计 2010/10/23 人活着,免不了设计.设计人生,设计生活起居.设计人际关系网络,设计感情生活.不管是设计哪一样,都是一种非常复杂而有技巧的事情.我这里不涉及生活设 ...
- 小白如何入门Python?记我的Python初体验
Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 文章目录 前言 一.初识Python 1.Python概述 1.1 Python的创始人 1.2 简介 2.P ...
- 小学计算机走进魔力画室教案,第15课 创意绘画初体验 教案
人教版小学信息技术<创意绘画初体验>教学设计 [教材分析] ???<绘制图形很便捷>是人教版小学信息技术四年级下册中第十五课的内容,"能使用常用绘图工具进行简单的创意 ...
最新文章
- 累加器配上委托也可以很吊
- python工程师证书-【一个合格的Python工程师需要达到怎样的编程水平】
- career service at cambridge
- 解决win7 64位无法进入debug的问题
- Linux 手动安装Ettercap
- Visual C++ 编译器选项 /MD、/ML、/MT、/LD
- 教育|仝卓高考舞弊案细节曝光:为“恢复高考成绩”已起诉1年多
- 重装系统四种方法(CGI还原,NTSetup安装,GHOST还原,手动GHOST)的区别
- 【多元统计分析】课程总结
- 计算机处理器基础原理笔记
- cache 提高计算机运行速度,使用cache可以提高计算机的运行速度,是什么原因?...
- Docker 连接宿主 Redis
- 统计中文文本中常用字占比
- 项目实战 - tpshop商城项目环境搭建
- SRP Batcher:提升您的渲染性能
- 「我们只投这两种AI公司」, 三位局内人首次公开AI投资的技术与产业标准
- iOS9 3D Touch 标签菜单 peek and pop force 压力触控 功能开发高级版教程
- python趋势回归_python使用LASSO回归预测股票收益
- LINEOUT、SPKOUT、LINEIN、MICIN端口区别
- Java的IO流---File类的使用