Day18 Elastic APM (二)

接下来我们要开始运用APM Agent的函式库来去做应用程序方面的监控。

APM 安装

kibana开启左选单 Observability > APM後,点选Add data後,可以按照步骤安装设定。
https://ithelp.ithome.com.tw/upload/images/20210924/201297626gJczpKHxT.jpg

APM Server 安装
步骤一:下载APM Server安装包, 下载地址

curl -L -O https://artifacts.elastic.co/downloads/apm-server/apm-server-7.0.0-darwin-x86_64.tar.gz
tar xzvf apm-server-7.0.0-darwin-x86_64.tar.gz
cd apm-server-7.0.0-darwin-x86_64/

步骤二:修改配置档案apm-server.yml。

output.elasticsearch:
    hosts: ["localhost:9200"]
    username: <username>
    password: <password>

步骤三:通过指令启动 APM Server。

./apm-server -e

步骤四:检测APM Server是否启动成功。
https://ithelp.ithome.com.tw/upload/images/20210924/20129762gS9JYOmrGX.png

APM Agents
步骤一:安装apm套件。

go get go.elastic.co/apm

步骤二:设定环境变数。

export ELASTIC_APM_SERVICE_NAME=apm-it13
export ELASTIC_APM_SERVER_URL=http://localhost:8200
export ELASTIC_APM_SECRET_TOKEN=
export ELASTIC_APM_ENVIRONMENT=

步骤三:在应用程序中加入APM Agent的函式库。

import (
	"net/http"

	"go.elastic.co/apm/module/apmhttp"
)

func main() {
	mux := http.NewServeMux()
	...
	http.ListenAndServe(":8080", apmhttp.Wrap(mux))
}

以下为官方提供的函式库:

  • module/apmhttp
  • module/apmfasthttp
  • module/apmecho
  • module/apmgin
  • module/apmfiber
  • module/apmbeego
  • module/apmgorilla
  • module/apmgrpc
  • module/apmhttprouter
  • module/apmnegroni
  • module/apmlambda
  • module/apmsql
  • module/apmgopg
  • module/apmgorm
  • module/apmgocql
  • module/apmredigo
  • module/apmgoredis
  • module/apmgoredisv8
  • module/apmrestful
  • module/apmchi
  • module/apmlogrus
  • module/apmzap
  • module/apmzerolog
  • module/apmelasticsearch
  • module/apmmongo
  • module/apmawssdkgo
  • module/apmazure

如何使用apm函式库可以参考官方的文件说明连结

小结

今日我们已经把APM Server安装和APM Agent的函式库都简单介绍完毕,接下来我们就要来看看Elastic APM所产生的监控图表,到底可以收集到那些资讯。


<<:  Day 14 实作调色盘App(2/3)

>>:  [FGL+GAS] 如何做出『登入後才可执行』的helloworld (3.X以後版本提供)

Day 3. Pre-Start × WYSIWYG × contenteditable

诚如上一篇结尾所说,我们今天要把目光聚焦在浏览器提供的 contenteditable 属性以及 ...

24.MYSQL NOT IN指令

有了IN就会有NOT IN,而写法跟用法一样的,就是不包含写的条件都会列出来 另外值得注意的是,IN...

Day26 深入解析Elasticsearch Query DSL Fuzzy query

Hello大家~ 昨天有去看烟火吗? 个人很怕烟火声都是看别人拍好的然後静音观看XD 在之前的内容我...

JS中的排序法_上

在Day7时候有提到排序法的简介,并且简介常见的6个演算法,在Icebear学习5天JS语法之後,在...

Angular 深入浅出三十天:表单与测试 Day22 - 把 Cypress 变成 TypeScript 版

平常都用惯 TypeScript 版的 Cypress,但这两天都用 JavaScript 在写测...