https://www.elastic.co/solutions/apm

应用程序性能监控
整体架构

先搞起来
  • agent 收集信息
  • apm-server 接受agent信息并发送到ES
  • ES 存储信息
  • Kibana 信息检索展示

agent python django

安装扩展包
 pip install elastic-apm

django 配置
# Add the agent to the installed apps
INSTALLED_APPS = (
   'elasticapm.contrib.django',
   #...
 
)


ELASTIC_APM = {
 #  Set required service name.
 # Allowed characters:
  # a-z, A-Z, 0-9, -, _, and space
  'SERVICE_NAME': 'my-app',
  #后台进程
  'TRANSPORT_CLASS': 'elasticapm.transport.http.AsyncTransport',
  # Use if APM Server requires a token
  #'SECRET_TOKEN': '',
 # 没有数据可以开启debug查看
 # 'DEBUG': True,
  # Set custom APM Server URL (
  # default: http://localhost:8200)
  #
  'SERVER_URL': 'http://10.1.88.73:8200',

}
# To send performance metrics, add our tracing middleware:
MIDDLEWARE = (
   'elasticapm.contrib.django.middleware.TracingMiddleware',
   #...
)


ElasticSearch

docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.2.4

Kibana

docker run -d -e ELASTICSEARCH_URL=http://10.1.88.73:9200 -p 5601:5601 docker.elastic.co/kibana/kibana:6.2.4

APM-Server


wget https://artifacts.elastic.co/downloads/apm-server/apm-server-6.4.2-linux-x86_64.tar.gz
tar xf apm-server-6.4.2-linux-x86_64.tar.gz
cd apm-server-6.4.2-linux-x86_64
./apm-server setup
./apm-server -e

完成之后,打开Kibana,就能看到APM增加的Dashboard和APM UI。