La position actuelle:Accueil du site>Elk note 25 - expérience rapide APM

Elk note 25 - expérience rapide APM

2022-07-23 19:15:47Lumière palatine xG

1 Introduction

Elastic APMEst basé surElastic StackSystème de surveillance du rendement des applications sur.Il permet aux utilisateurs de recueillir des informations sur les demandes entrantes、Requête dans la base de données、Appel de cache、ExtérieurHTTPDétails sur le rendement pour les temps de réponse tels que les demandes,Pour surveiller les services logiciels et les applications en temps réel.Cela permet aux utilisateurs de localiser et de corriger facilement les problèmes de performance.
Elastic APMLes erreurs et exceptions non gérées sont également automatiquement collectées,Ces erreurs sont principalement groupées en fonction de la trace de la pile,Afin que les utilisateurs puissent identifier les nouvelles erreurs lorsqu'elles se produisent,Et se concentrer sur le nombre d'erreurs spécifiques qui se produisent.
Lors de la mise en service du système de production,Les mesures constituent une autre source importante d'information..Elastic APM agentObtient automatiquement des mesures de base au niveau de l'hôte et des mesures spécifiques liées à l'agent,Par exemple,JavaDans l'AgenceJVMIndicateurs etGoDans l'AgenceGoIndicateurs d'exécution.

Elastic APM Contient4Principales composantes: APM agents, Elastic APM integration, Elasticsearch, and Kibana , Leurs principales architectures d'ingénierie sont les suivantes :
1) Sur la machine Edge APM agents Envoyer les données à l'hébergement centralisé APML'intégration est
Insérer la description de l'image ici
2)APM agentsEtAPM L'intégration fonctionne sur la machine Edge , Et grâce à l'hébergement centralisé Elastic agent Inscription

Insérer la description de l'image ici

Ci - dessusElastic APM Les principales fonctions et architectures de ,Pour comprendreElastic APM Après la fonction principale , Cet article sera installé à partir de la Fondation APM server,Et à travers python Les cas montrent .

2 Essais d'installation

2.1 Installation APM server

docker pull docker.elastic.co/apm/apm-server:7.15.2

curl -L -O https://raw.githubusercontent.com/elastic/apm-server/7.15/apm-server.docker.yml

docker run -d \
  -p 8200:8200 \
  --name=apm-server-7.15.2 \
  --user=apm-server \
  --volume="/home/xg/soft/elk/apm-7.15.2/apm-server.docker.yml:/usr/share/apm-server/apm-server.yml:ro" \
  docker.elastic.co/apm/apm-server:7.15.2 \
  --strict.perms=false -e \
  -E output.elasticsearch.hosts=["es_ip:9200"] -E output.elasticsearch.username="es_user" -E output.elasticsearch.password="es_pwd"

2.2 pythonCas d'essai

#!/usr/bin/python3

""" pip3 install elastic-apm[flask] """

import time
from flask import Flask
import requests
import json
from elasticapm.contrib.flask import ElasticAPM


app = Flask(__name__)
app.config['ELASTIC_APM'] = {
    
    'SERVICE_NAME': 'xg-flask-01',
    'SECRET_TOKEN': 'not-set',
    'SERVER_URL': 'http://localhost:8200'
}
apm = ElasticAPM(app)


@app.route("/")
def hello_world():
    ret_dict = {
    
        "main": "/ , Hello. World",
        "test_error": "/api/test-error",
        "test_wait": "/api/test-wait",
        "test_get": "/api/test-get"
    }
    return json.dumps(ret_dict)


@app.route("/api/test-error")
def test_error():
    try:
        print(10/0)
    except Exception as e:
        print(f"error: {
      e}")
    print(101 + "error")
    return json.dumps({
    'msg': "test-error"})


def my_wait(ts=1):
    time.sleep(ts)


@app.route("/api/test-wait")
def test_wait():
    ts = 5
    print("wait")
    my_wait(ts)
    return json.dumps({
    'msg': f"wait {
      ts}s"})



@app.route("/api/test-get")
def test_get():
    r = requests.get(url='http://www.baidu.com')
    return json.dumps({
    'msg': f"get www.baidu.com, status_code={
      r.status_code}"})


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080)

2.3 kibana APM Afficher les informations

Services
Insérer la description de l'image ici
Traces
Insérer la description de l'image ici
Dependencies
Insérer la description de l'image ici
Overview
Insérer la description de l'image ici
Transactions
Insérer la description de l'image ici
Dependencies
Insérer la description de l'image ici
Errors
Insérer la description de l'image ici
Metrics
[Photos]

3 Notes

  1. Regarde.APMDocuments officiels,DécouverteElastic De apm-server Prise en charge de l'écriture des données à kafka, On pourrait donc envisager de l'utiliser apm-server Écrire des données kafka, Les données sont ensuite importées dans clickhouseOu autredb, La couche supérieure s'encapsule APM Front end de la requête , Il est possible de réaliser un APMC'est.
    Avantages: Peut être utilisé directement elastic De apm-server Et agent Spécification d'accès , Il suffit de se concentrer sur les requêtes des utilisateurs
    Inconvénients:Besoin de se réaliser soi - même APM Avant,Peut être référencé elastic De apm Fonction
    Configure the Kafka output

4 Description

Environnement d'essai:
elk 7.15.2
apm-server 7.15.2
Documents de référence:
APM User Guide
Run APM Server on Docker
agent code example

Mentions de copyright
Auteur de cet article [Lumière palatine xG],Réimpression s’il vous plaît apporter le lien vers l’original, merci
https://fra.chowdera.com/2022/204/202207231715484878.html

Recommandé au hasard