클라우드의 kubernetes에서 실행 중인 일부 컨테이너가 있는데, 이것들은 prem db 서버에서 쿼리하고 있습니다. dbs의 대기 시간이 앱에 어떤 영향을 미치는지 보고 싶습니다. 이를 모니터링/기록하려면 어떻게 해야 합니까?
답변1
SGBD 응답 시간을 그래프로 표시한다고 가정하면, 루프에서 데이터베이스를 쿼리하고 일부 결과를 표준 출력으로 출력하는 Pod를 설정할 수 있습니다 time mysql <cmd-args>
. 그런 다음 해당 측정항목(또는 munin, Collectd 등 생태계에 적합한 모든 항목)을 노출하는 prometheus 라이브러리를 사용합니다.
SQL 내부 메트릭에 관심이 있다고 가정하면 원격 SGBD를 쿼리하여 Kubernetes에 일부 mysql 내보내기 도구를 배포할 수 있습니다. 링크 대기 시간에 관한 데이터가 많을지는 의심스럽습니다.
내가 MySQL 자체보다는 사이트 간 대기 시간에 별로 관심이 없다고 가정하면 스모크핑, 응답 시간 그래프와 같은 것을 사용할 수 있습니다. 더 나은 방법: 반드시 MySQL을 쿼리할 필요는 없고 TCP 핸드셰이크를 설정하는 데 필요한 시간을 측정하는 일종의 TCP 검사입니다.
그러나 이상적인 경우는 애플리케이션이 해당 시간을 측정하는 것입니다. 느린 응답은 거리, 하드웨어 오류 또는 소프트웨어 사고로 인해 발생할 수 있습니다. 최적화할 수 있는 쿼리를 정확히 찾아낼 수 있으므로 쿼리 시간과 쿼리된 데이터를 모두 추적하는 것이 합리적일 수 있습니다.
아, 그리고 분명히 Istio, Service Meshes 등은 실행 시간, 데이터 흐름 등을 추적하는 데 도움이 되는 많은 도구와 함께 제공되는 경향이 있습니다.