En este artículo, contaré una historia sobre cómo puede enfrentar un problema bastante simple en grandes instalaciones de productos Atlassian, en particular en Jira.
Métodos para analizar y encontrar cuellos de botella:
Estadísticas
muestreo
perfilado y rastreo
En este artículo, analizaremos el seguimiento de la solicitud, que muestra casi todo el segmento de la solicitud, es decir, desde el inicio de la solicitud desde el navegador del cliente hasta la transición al proxy inverso, si existe, al servidor de aplicaciones y desde a cachés, índices de búsqueda de Lucene, DBMS.
Un punto importante es que es difícil analizar el sistema por parte del cliente, ya que tenían requisitos estrictos para el uso de las herramientas que se enumeran en los requisitos.
Requisitos
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 .
, .