安装测试环境

我们使用Elastic在github上的项目apm-integration-testing,来生成对应的APM数据。我们使用这个项目的整个测试环境中包含了用于demo的前端,后端,数据库的实例,包含javapythonnode.jsrubygo.netphp等不同语言编写的应用程序,也包含了数据库(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 全观测性初体验相关推荐

  1. 华为晟思Mindspore初体验:全场景统一式框架与函数式微分编程

    华为晟思Mindspore初体验:全场景统一式框架与函数式微分编程 1. Mindspore的全场景统一式框架 2. Mindspore的自动微分技术(Automatic Differentiatio ...

  2. 升级鸿蒙系统效果,鸿蒙系统初体验 全方位体验升级[多图]

    鸿蒙系统是近期华为发布的,这个的话,在更新了以后,就能够看到了,不过只是对于某些适配机型来说是这样,其他的话,是没有的,很多用户都十分的好奇,也是在观望当中,这个的话,到底应不应该去升级,效果怎么样呢 ...

  3. 【全观测系列】Elasticsearch应用性能监控实践

    简介:本文介绍了应用性能监控的应用价值以及解决方案等. 1.什么是全观测? 要了解全观测,我们先看看传统运维存在哪些问题. 数据孤岛,分散在不同部门,分析排查故障困难: 多个厂商的多种工具,无法自动化 ...

  4. vSphere 7 Kubernetes 初体验

    vSphere 7 Kubernetes 初体验 分类专栏: NSX-T WCP K8S 文章标签: paas 版权 有关vSphere7 with WCP,即整合Kubernetes的具体介绍,请参 ...

  5. SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事

    本人是一名热爱网络工程的菜鸡,是一只兴趣使然的菜鸡,我目前发的blog只是作为我学习阶段的一个总结,分享给大家,希望大家一起交流,一起探讨,文章中有不正确的知识或言论请大家指出,同时我觉得对网络感兴趣 ...

  6. 华为智慧屏和鸿蒙系统对比,鸿蒙初体验:荣耀智慧屏跨系统交互构建新生态

    2013年的初夏,当年著名的互联网企业乐视正式发布了第一代互联网电视X60,它将过去的机顶盒与电视相融合,直接接入互联网视频内容,正式拉开了互联网电视的大幕. 如今6年过去,众多电视品牌起起伏伏,电视 ...

  7. 设计之初体验—我谈产品设计

    设计之初体验-我谈产品设计  2010/10/23   人活着,免不了设计.设计人生,设计生活起居.设计人际关系网络,设计感情生活.不管是设计哪一样,都是一种非常复杂而有技巧的事情.我这里不涉及生活设 ...

  8. 小白如何入门Python?记我的Python初体验

    Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 文章目录 前言 一.初识Python 1.Python概述 1.1 Python的创始人 1.2 简介 2.P ...

  9. 小学计算机走进魔力画室教案,第15课 创意绘画初体验 教案

    人教版小学信息技术<创意绘画初体验>教学设计 [教材分析] ???<绘制图形很便捷>是人教版小学信息技术四年级下册中第十五课的内容,"能使用常用绘图工具进行简单的创意 ...

最新文章

  1. 累加器配上委托也可以很吊
  2. python工程师证书-【一个合格的Python工程师需要达到怎样的编程水平】
  3. career service at cambridge
  4. 解决win7 64位无法进入debug的问题
  5. Linux 手动安装Ettercap
  6. Visual C++ 编译器选项 /MD、/ML、/MT、/LD
  7. 教育|仝卓高考舞弊案细节曝光:为“恢复高考成绩”已起诉1年多
  8. 重装系统四种方法(CGI还原,NTSetup安装,GHOST还原,手动GHOST)的区别
  9. 【多元统计分析】课程总结
  10. 计算机处理器基础原理笔记
  11. cache 提高计算机运行速度,使用cache可以提高计算机的运行速度,是什么原因?...
  12. Docker 连接宿主 Redis
  13. 统计中文文本中常用字占比
  14. 项目实战 - tpshop商城项目环境搭建
  15. SRP Batcher:提升您的渲染性能
  16. 「我们只投这两种AI公司」, 三位局内人首次公开AI投资的技术与产业标准
  17. iOS9 3D Touch 标签菜单 peek and pop force 压力触控 功能开发高级版教程
  18. python趋势回归_python使用LASSO回归预测股票收益
  19. LINEOUT、SPKOUT、LINEIN、MICIN端口区别
  20. Java的IO流---File类的使用

热门文章

  1. js进栈出栈_JavaScript js调用堆栈(一)
  2. 一万五千字讲清Java当中Collection下的接口
  3. linux系统Centos7更换下载源阿里云
  4. Using the Scheduler Application - JDE Scheduler Job 原理
  5. 利用谷歌镜像网站编辑Latex的参考文献与doi链接
  6. EndNote安装与使用
  7. 3. linux 常见服务
  8. 面试-Iteration Owner-新加坡航空
  9. 思科交换机配置ipv6实验
  10. MES系统是怎样实现生产调度的?