In diesem Artikel werde ich eine Geschichte darüber erzählen, wie Sie bei großen Installationen von Atlassian-Produkten, insbesondere bei Jira, einem relativ einfachen Problem begegnen können.
Methoden zur Analyse und Ermittlung von Engpässen:
Statistiken
Probenahme
Profilerstellung und Rückverfolgung
In diesem Artikel analysieren wir den Anforderungs-Trace, der fast das gesamte Segment der Anforderung anzeigt, und zwar vom Beginn der Anforderung vom Browser des Clients bis zum Übergang zum Reverse-Proxy (falls vorhanden) zum Anwendungsserver und von es zu Caches, Lucene-Suchindizes, DBMS.
Ein wichtiger Punkt ist, dass es für den Kunden schwierig ist, das System zu analysieren, da er strenge Anforderungen an die Verwendung der in den Anforderungen aufgeführten Werkzeuge hatte.
Bedarf
APM- ( ) , . — . , , open source . — , .
:
;
(On-Premise);
;
Elasticsearch (Opendistro);
JVM ( Atlassian , Java), javaagent;
HTTP c SQL-;
;
, , . , 12 , 1 . . , .
https://openapm.io/landscape, APM-. Glowroot, .
, , Cassandra ( ) Elasticsearch.
wget -c https://github.com/glowroot/glowroot/releases/download/v0.13.6/glowroot-0.13.6-dist.zip
2. mkdir -p /jira/glowroot/tmp, Jira , , Jira
chown -R jira: /jira/home/glowroot
3. setenv.sh jira, /jira/current/bin. , /opt/atlassian/jira/bin :
JVM_SUPPORT_RECOMMENDED_ARGS="-javaagent:/jira/glowroot/glowroot.jar ${JVM_SUPPORT_RECOMMENDED_ARGS}"
4. :
systemctl restart jira
:
tail -f {jira_installation_directory}/logs/catalina.out
127.0.0.1, glowroot , , admin.json. bindAddress 0.0.0.0 . contextPath - /glowroot.
reverse proxy ( nginx), :
location /glowroot {
proxy_pass http://127.0.0.1:4000;
}
Agent-Installation-(with-Embedded-Collector)
, jira.example.com/glowroot .
, .
, , , .
,
glowroot , 30000, . trace, .
, PostgreSQL, PostgreSQL IOPS.
— Jira , thread dump , .
stacktrace , .
stacktrace , createTemporaryTablesIfNeeded .
. .
entity engine, , .
, .
:
unlogged cwd_users PostgreSQL
, ? , , ? , ?
, Atlassian .
, .