- 메트릭 수집
- 사용 가능한 메트릭
- 기능 플래그로 제어되는 메트릭
- Praefect 메트릭
- Sidekiq 메트릭
- 데이터베이스 로드 밸런싱 메트릭
- 데이터베이스 파티셔닝 메트릭
- 연결 풀 메트릭
- 루비 메트릭
- Puma Metrics
- Redis metrics
- 메트릭 공유 디렉터리
GitLab 프로메테우스 메트릭
GitLab 프로메테우스 메트릭을 활성화하려면:
- 관리자 액세스 권한이 있는 사용자로 GitLab에 로그인합니다.
- 왼쪽 사이드바 가장 아래에서 관리자 영역을 선택합니다.
- 설정 > 메트릭 및 프로파일링을 선택합니다.
- Metrics - Prometheus 섹션을 찾은 후 Enable GitLab Prometheus metrics endpoint를 선택합니다.
- 변경 사항이 적용되려면 GitLab을 다시 시작합니다.
자체 컴파일된 설치의 경우 직접 구성해야 합니다.
메트릭 수집
GitLab은 자체 내부 서비스 메트릭을 모니터링하고 /-/metrics
엔드포인트에서 이를 사용할 수 있게 합니다. 다른 프로메테우스 익스포터와는 달리 메트릭에 액세스하려면 클라이언트 IP 주소가 명시적으로 허용되어야 합니다.
이러한 메트릭은 Linux package 및 Helm 차트 설치에 대해 활성화되고 수집됩니다. 자체 컴파일된 설치의 경우 이러한 메트릭을 수동으로 활성화하고 프로메테우스 서버에서 수집해야 합니다.
Sidekiq 노드에서 메트릭을 활성화하고 확인하려면 Sidekiq 메트릭을 참조하세요.
사용 가능한 메트릭
다음과 같은 메트릭이 있습니다:
메트릭 | 유형 | 버전 | 설명 | 라벨 |
---|---|---|---|---|
gitlab_cache_misses_total
| 카운터 | 10.2 | 캐시 읽기 미스 |
controller , action , store , endpoint_id
|
gitlab_cache_operation_duration_seconds
| 히스토그램 | 10.2 | 캐시 액세스 시간 |
operation , store , endpoint_id
|
gitlab_cache_operations_total
| 카운터 | 12.2 | 컨트롤러 또는 액션별 캐시 작업 |
controller , action , operation , store , endpoint_id
|
… | ||||
gitlab_keeparound_refs_created_total
| 카운터 | 16.10 | 실제로 생성된 keep-around refs의 수 | source
|
기능 플래그로 제어되는 메트릭
다음 메트릭은 기능 플래그로 제어할 수 있습니다:
메트릭 | 기능 플래그 |
---|---|
gitlab_view_rendering_duration_seconds
| prometheus_metrics_view_instrumentation
|
gitlab_ci_queue_depth_total
| gitlab_ci_builds_queuing_metrics
|
gitlab_ci_queue_size
| gitlab_ci_builds_queuing_metrics
|
gitlab_ci_queue_size_total
| gitlab_ci_builds_queuing_metrics
|
gitlab_ci_queue_iteration_duration_seconds
| gitlab_ci_builds_queuing_metrics
|
gitlab_ci_current_queue_size
| gitlab_ci_builds_queuing_metrics
|
gitlab_ci_queue_retrieval_duration_seconds
| gitlab_ci_builds_queuing_metrics
|
gitlab_ci_queue_active_runners_total
| gitlab_ci_builds_queuing_metrics
|
Praefect 메트릭
Praefect를 구성하여 메트릭을 보고할 수 있습니다. 사용 가능한 메트릭에 대한 정보는 관련 문서를 참조하십시오.
Sidekiq 메트릭
Sidekiq 작업에서도 메트릭을 수집할 수 있고, 이러한 메트릭은 Sidekiq 내보내기가 활성화된 경우에만 액세스할 수 있습니다: 예를 들어, gitlab.yml
의 monitoring.sidekiq_exporter
구성 옵션을 사용합니다. 이러한 메트릭은 구성된 포트의 /metrics
경로에서 제공됩니다.
메트릭 | 유형 | 버전 | 설명 | 레이블 |
---|---|---|---|---|
sidekiq_jobs_cpu_seconds
| 히스토그램 | 12.4 | Sidekiq 작업의 CPU 사용 시간(초) |
queue , boundary , external_dependencies , feature_category , job_status , urgency
|
sidekiq_jobs_completion_seconds
| 히스토그램 | 12.2 | Sidekiq 작업 완료까지 걸린 시간(초) |
queue , boundary , external_dependencies , feature_category , job_status , urgency
|
sidekiq_jobs_db_seconds
| 히스토그램 | 12.9 | Sidekiq 작업의 DB 사용 시간(초) |
queue , boundary , external_dependencies , feature_category , job_status , urgency
|
sidekiq_jobs_gitaly_seconds
| 히스토그램 | 12.9 | Sidekiq 작업의 Gitaly 사용 시간(초) |
queue , boundary , external_dependencies , feature_category , job_status , urgency
|
sidekiq_redis_requests_duration_seconds
| 히스토그램 | 13.1 | Sidekiq 작업에서 Redis 서버 쿼리에 소요된 시간(초) |
queue , boundary , external_dependencies , feature_category , job_status , urgency
|
sidekiq_elasticsearch_requests_duration_seconds
| 히스토그램 | 13.1 | Sidekiq 작업에서 ElasticSearch 서버로의 요청에 소요된 시간(초) |
queue , boundary , external_dependencies , feature_category , job_status , urgency
|
sidekiq_jobs_queue_duration_seconds
| 히스토그램 | 12.5 | Sidekiq 작업이 실행되기 전 대기열에 들어간 시간(초) |
queue , boundary , external_dependencies , feature_category , urgency
|
sidekiq_jobs_failed_total
| 카운터 | 12.2 | 실패한 Sidekiq 작업의 수 |
queue , boundary , external_dependencies , feature_category , urgency
|
sidekiq_jobs_retried_total
| 카운터 | 12.2 | 재시도된 Sidekiq 작업의 수 |
queue , boundary , external_dependencies , feature_category , urgency
|
sidekiq_jobs_interrupted_total
| 카운터 | 15.2 | 중지된 Sidekiq 작업의 수 |
queue , boundary , external_dependencies , feature_category , urgency
|
sidekiq_jobs_dead_total
| 카운터 | 13.7 | Sidekiq 데드 작업(재시도 기회가 소진된 작업)의 수 |
queue , boundary , external_dependencies , feature_category , urgency
|
sidekiq_redis_requests_total
| 카운터 | 13.1 | Sidekiq 작업 실행 중 발생한 Redis 요청의 수 |
queue , boundary , external_dependencies , feature_category , job_status , urgency
|
sidekiq_elasticsearch_requests_total
| 카운터 | 13.1 | Sidekiq 작업 실행 중 발생한 ElasticSearch 요청의 수 |
queue , boundary , external_dependencies , feature_category , job_status , urgency
|
sidekiq_jobs_skipped_total
| 카운터 | 16.2 |
drop_sidekiq_jobs 기능 플래그가 활성화되었거나 run_sidekiq_jobs 기능 플래그가 비활성화된 경우 건너 뛰어진(폐기된 또는 연기된) 작업의 수
|
worker , action
|
sidekiq_running_jobs
| 게이지 | 12.2 | 실행 중인 Sidekiq 작업의 수 |
queue , boundary , external_dependencies , feature_category , urgency
|
sidekiq_concurrency
| 게이지 | 12.5 | 최대 Sidekiq 작업의 수 | |
sidekiq_mem_total_bytes
| 게이지 | 15.3 | 객체 슬롯을 소비하는 객체와 malloc이 필요한 객체에 할당된 바이트 수 | |
geo_db_replication_lag_seconds
| 게이지 | 10.2 | 데이터베이스 복제 지연(초) | url
|
geo_repositories
| 게이지 | 10.2 | 기본 상태에서 사용 가능한 저장소의 총 수 | url
|
geo_lfs_objects
| 게이지 | 10.2 | 기본 상태에서 LFS 개체의 수 | url
|
geo_lfs_objects_checksummed
| 게이지 | 14.6 | 기본 상태에서 성공적으로 확인된 LFS 개체의 수 | url
|
geo_lfs_objects_checksum_failed
| 게이지 | 14.6 | 기본 상태에서 체크섬을 계산하지 못한 LFS 개체의 수 | url
|
geo_lfs_objects_checksum_total
| 게이지 | 14.6 | 기본 상태에서 체크섬을 계산해야 하는 LFS 개체의 수 | url
|
geo_lfs_objects_synced
| 게이지 | 10.2 | 보조 상태에서 동기화된 동기 가능한 LFS 개체의 수 | url
|
geo_lfs_objects_failed
| 게이지 | 10.2 | 보조 상태에서 동기화에 실패한 동기 가능한 LFS 개체의 수 | url
|
geo_lfs_objects_registry
| 게이지 | 14.6 | 레지스트리에있는 LFS 개체의 수 | url
|
geo_lfs_objects_verified
| 게이지 | 14.6 | 보조 상태에서 성공적으로 확인된 LFS 개체의 수 | url
|
geo_lfs_objects_verification_failed
| 게이지 | 14.6 | 보조 상태에서 확인에 실패한 LFS 개체의 수 | url
|
geo_lfs_objects_verification_total
| 게이지 | 14.6 | 보조 상태에서 확인을 시도해야 하는 LFS 개체의 수 | url
|
geo_last_event_id
| 게이지 | 10.2 | 기본 서버의 최신 이벤트 로그 항목의 데이터베이스 ID | url
|
geo_last_event_timestamp
| 게이지 | 10.2 | 기본 서버의 최신 이벤트 로그 항목의 UNIX 타임스태프 | url
|
geo_cursor_last_event_id
| 게이지 | 10.2 | 보조 서버에서 처리한 마지막 이벤트 로그의 데이터베이스 ID | url
|
geo_cursor_last_event_timestamp
| 게이지 | 10.2 | 보조 서버에서 처리한 마지막 이벤트 로그의 UNIX 타임스태프 | url
|
geo_status_failed_total
| 카운터 | 10.2 | Geo 노드에서 상태 검색을 검색 실패한 횟수 | url
|
geo_last_successful_status_check_timestamp
| 게이지 | 10.2 | 상태가 성공적으로 업데이트된 마지막 타임스태프 | url
|
geo_package_files
| 게이지 | 13.0 | 기본 상태에서 패키지 파일의 수 | url
|
geo_package_files_checksummed
| 게이지 | 13.0 | 기본 상태에서 체크섬이 계산된 패키지 파일의 수 | url
|
geo_package_files_checksum_failed
| 게이지 | 13.0 | 기본 상태에서 체크섬을 계산하지 못한 패키지 파일의 수 | url
|
geo_package_files_synced
| 게이지 | 13.3 | 보조 상태에서 동기화된 동기 가능한 패키지 파일의 수 | url
|
geo_package_files_failed
| 게이지 | 13.3 | 보조 상태에서 동기화되지 못한 동기 가능한 패키지 파일의 수 | url
|
geo_package_files_registry
| 게이지 | 13.3 | 레지스트리에있는 패키지 파일의 수 | url
|
geo_terraform_state_versions
| 게이지 | 13.5 | 기본 상태에서 테라폼 상태 버전의 수 | url
|
geo_terraform_state_versions_checksummed
| 게이지 | 13.5 | 기본 상태에서 성공적으로 확인된 테라폼 상태 버전의 수 | url
|
geo_terraform_state_versions_checksum_failed
| 게이지 | 13.5 | 기본 상태에서 확인에 실패한 테라폼 상태 버전의 수 | url
|
geo_terraform_state_versions_checksum_total
| 게이지 | 13.12 | 체크섬을 계산해야 하는 테라폼 상태 버전의 수 | url
|
geo_terraform_state_versions_synced
| 게이지 | 13.5 | 보조 상태에서 동기화된 동기 가능한 테라폼 상태 버전의 수 | url
|
geo_terraform_state_versions_failed
| 게이지 | 13.5 | 보조 상태에서 동기화되지 못한 동기 가능한 테라폼 상태 버전의 수 | url
|
geo_terraform_state_versions_registry
| 게이지 | 13.5 | 레지스트리에있는 테라폼 상태 버전의 수 | url
|
geo_terraform_state_versions_verified
| 게이지 | 13.12 | 보조 상태에서 성공적으로 확인된 테라폼 상태 버전의 수 | url
|
geo_terraform_state_versions_verification_failed
| 게이지 | 13.12 | 보조 상태에서 확인에 실패한 테라폼 상태 버전의 수 | url
|
geo_terraform_state_versions_verification_total
| 게이지 | 13.12 | 보조 상태에서 확인을 시도해야 하는 테라폼 상태 버전의 수 | url
|
global_search_bulk_cron_queue_size
| 게이지 | 12.10 | Elasticsearch로 동기화되기를 대기 중인 데이터베이스 레코드 수 | |
global_search_awaiting_indexing_queue_size
| 게이지 | 13.2 | 인덱싱이 일시 중지된 동안 Elasticsearch로 동기화되기를 대기 중인 데이터베이스 업데이트 수 | |
geo_merge_request_diffs
| 게이지 | 13.4 | 기본 상태에서 MR 차이의 수 | url
|
geo_merge_request_diffs_checksum_total
| 게이지 | 13.12 | 기본 상태에서 체크섬을 계산해야 하는 MR 차이의 수 | url
|
geo_merge_request_diffs_checksummed
| 게이지 | 13.4 | 기본 상태에서 성공적으로 확인된 MR 차이의 수 | url
|
geo_merge_request_diffs_checksum_failed
| 게이지 | 13.4 | 기본 상태에서 체크섬을 계산하지 못한 MR 차이의 수 | url
|
geo_merge_request_diffs_synced
| 게이지 | 13.4 | 보조 상태에서 동기화된 동기 가능한 MR 차이의 수 | url
|
geo_merge_request_diffs_failed
| 게이지 | 13.4 | 보조 상태에서 동기화되지 못한 동기 가능한 MR 차이의 수 | url
|
geo_merge_request_diffs_registry
| 게이지 | 13.4 | 레지스트리에있는 MR 차이의 수 | url
|
geo_merge_request_diffs_verification_total
| 게이지 | 13.12 | 보조 상태에서 확인을 시도해야 하는 MR 차이의 수 | url
|
geo_merge_request_diffs_verified
| 게이지 | 13.12 | 보조 상태에서 성공적으로 확인된 MR 차이의 수 | url
|
geo_merge_request_diffs_verification_failed
| 게이지 | 13.12 | 보조 상태에서 확인에 실패한 MR 차이의 수 | url
|
geo_snippet_repositories
| 게이지 | 13.4 | 기본 상태에서 snippet의 수 | url
|
geo_snippet_repositories_checksummed
| 게이지 | 13.4 | 기본 상태에서 체크섬이 계산된 snippet의 수 | url
|
geo_snippet_repositories_checksum_failed
| 게이지 | 13.4 | 기본 상태에서 체크섬을 계산하지 못한 snippet의 수 | url
|
geo_snippet_repositories_synced
| 게이지 | 13.4 | 보조 상태에서 동기화된 동기 가능한 snippet의 수 | url
|
geo_snippet_repositories_failed
| 게이지 | 13.4 | 보조 상태에서 동기화되지 못한 동기 가능한 snippet의 수 | url
|
geo_snippet_repositories_registry
| 게이지 | 13.4 | 레지스트리에있는 snippet의 수 | url
|
`geo |
데이터베이스 로드 밸런싱 메트릭
다음 메트릭이 제공됩니다:
메트릭 | 유형 | 버전 | 설명 | 레이블 |
---|---|---|---|---|
db_load_balancing_hosts
| 게이지 | 12.3 | 현재 로드 밸런싱 호스트 수 | |
sidekiq_load_balancing_count
| 카운터 | 13.11 | :sticky 또는 :delayed로 데이터 일관성을 설정한 Sidekiq 작업에 대한 로드 밸런싱 사용 횟수 |
queue , boundary , external_dependencies , feature_category , job_status , urgency , data_consistency , load_balancing_strategy
|
gitlab_transaction_caught_up_replica_pick_count_total
| 카운터 | 14.1 | caught up 복제본에 대한 검색 시도 수 | result
|
데이터베이스 파티셔닝 메트릭
다음 메트릭이 제공됩니다:
메트릭 | 유형 | 버전 | 설명 |
---|---|---|---|
db_partitions_present
| 게이지 | 13.4 | 현재 존재하는 데이터베이스 파티션 수 |
db_partitions_missing
| 게이지 | 13.4 | 현재 예상되지만 존재하지 않는 데이터베이스 파티션 수 |
연결 풀 메트릭
이러한 메트릭은 데이터베이스의 연결 풀 상태를 기록하며 모든 메트릭에 다음과 같은 레이블이 있습니다:
-
class
- 레코드되는 Ruby 클래스.-
ActiveRecord::Base
는 메인 데이터베이스 연결입니다. -
Geo::TrackingBase
는 활성화된 경우 Geo 추적 데이터베이스에 대한 연결입니다.
-
-
host
- 데이터베이스에 연결하는 데 사용되는 호스트 이름. -
port
- 데이터베이스에 연결하는 데 사용되는 포트.
메트릭 | 유형 | 버전 | 설명 |
---|---|---|---|
gitlab_database_connection_pool_size
| 게이지 | 13.0 | 총 연결 풀 용량 |
gitlab_database_connection_pool_connections
| 게이지 | 13.0 | 현재 풀 내 연결 |
gitlab_database_connection_pool_busy
| 게이지 | 13.0 | 소유자가 아직 활성 상태인 사용 중인 연결 |
gitlab_database_connection_pool_dead
| 게이지 | 13.0 | 소유자가 비활성 상태인 사용 중인 연결 |
gitlab_database_connection_pool_idle
| 게이지 | 13.0 | 사용되지 않는 연결 |
gitlab_database_connection_pool_waiting
| 게이지 | 13.0 | 현재이 대기열에서 대기 중인 스레드 |
루비 메트릭
일부 기본적인 루비 런타임 메트릭이 제공됩니다:
메트릭 | 유형 | 버전 | 설명 |
---|---|---|---|
ruby_gc_duration_seconds
| 카운터 | 11.1 | 루비에서 GC에 소요된 시간 |
ruby_gc_stat_...
| 게이지 | 11.1 | GC.stat의 다양한 메트릭 |
ruby_gc_stat_ext_heap_fragmentation
| 게이지 | 15.2 | 라이브 객체 대 에덴 슬롯의 루비 힙 단편화 정도 (범위 0에서 1) |
ruby_file_descriptors
| 게이지 | 11.1 | 프로세스 당 파일 디스크립터 |
ruby_sampler_duration_seconds
| 카운터 | 11.1 | 통계 수집에 사용된 시간 |
ruby_process_cpu_seconds_total
| 게이지 | 12.0 | 프로세스 당 총 CPU 시간 |
ruby_process_max_fds
| 게이지 | 12.0 | 프로세스 당 오픈 파일 디스크립터 최대 개수 |
ruby_process_resident_memory_bytes
| 게이지 | 12.0 | 프로세스의 메모리 사용 (RSS/Resident Set Size) |
ruby_process_resident_anon_memory_bytes
| 게이지 | 15.6 | 프로세스의 익명 메모리 사용 (RSS/Resident Set Size) |
ruby_process_resident_file_memory_bytes
| 게이지 | 15.6 | 프로세스의 파일 백드 메모리 사용 (RSS/Resident Set Size) |
ruby_process_unique_memory_bytes
| 게이지 | 13.0 | 프로세스의 메모리 사용 (USS/Unique Set Size) |
ruby_process_proportional_memory_bytes
| 게이지 | 13.0 | 프로세스의 메모리 사용 (PSS/Proportional Set Size) |
ruby_process_start_time_seconds
| 게이지 | 12.0 | 프로세스 시작 시간의 UNIX 타임스탬프 |
Puma Metrics
메트릭 | 유형 | 버전 | 설명 |
---|---|---|---|
puma_workers
| 게이지 | 12.0 | 총 워커 수 |
puma_running_workers
| 게이지 | 12.0 | 부팅된 워커 수 |
puma_stale_workers
| 게이지 | 12.0 | 오래된 워커 수 |
puma_running
| 게이지 | 12.0 | 실행 중인 스레드 수 |
puma_queued_connections
| 게이지 | 12.0 | 작업자 스레드를 기다리는 “할 일” 세트에 있는 연결 수 |
puma_active_connections
| 게이지 | 12.0 | 요청을 처리 중인 스레드 수 |
puma_pool_capacity
| 게이지 | 12.0 | 현재 워커가 처리할 수 있는 요청 수 |
puma_max_threads
| 게이지 | 12.0 | 최대 워커 스레드 수 |
puma_idle_threads
| 게이지 | 12.0 | 요청을 처리하지 않는 생성된 스레드 수 |
Redis metrics
이 클라이언트 메트릭은 Redis 서버 메트릭을 보완하기 위한 것입니다.
이러한 메트릭은 Redis 인스턴스별로 분해됩니다.
이러한 메트릭은 모두 storage
레이블이 있으며 Redis 인스턴스를 나타냅니다. 예를 들어 cache
또는 shared_state
.
메트릭 | 유형 | 버전 | 설명 |
---|---|---|---|
gitlab_redis_client_exceptions_total
| 카운터 | 13.2 | 예외 클래스별로 분해된 Redis 클라이언트 예외 수 |
gitlab_redis_client_requests_total
| 카운터 | 13.2 | Redis 클라이언트 요청 수 |
gitlab_redis_client_requests_duration_seconds
| 히스토그램 | 13.2 | 블로킹 명령을 제외한 Redis 요청 대기 시간 |
gitlab_redis_client_redirections_total
| 카운터 | 15.10 | 리디렉션 유형별로 분해된 Redis 클러스터 MOVED/ASK 리디렉션 수 |
gitlab_redis_client_requests_pipelined_commands
| 히스토그램 | 16.4 | 단일 Redis 서버로 보내진 파이프라인 당 명령 수 |
메트릭 공유 디렉터리
GitLab Prometheus 클라이언트는 멀티 프로세스 서비스 간에 공유되는 메트릭 데이터를 저장할 디렉터리가 필요합니다. 이 파일들은 Puma 서버에서 실행 중인 모든 인스턴스에서 공유됩니다. 이 디렉터리는 모든 실행 중인 Puma 프로세스에서 접근할 수 있어야 하며, 그렇지 않으면 메트릭이 올바르게 기능하지 않을 수 있습니다.
이 디렉터리의 위치는 환경 변수 prometheus_multiproc_dir
를 사용하여 구성됩니다.
최상의 성능을 위해 이 디렉터리를 tmpfs
에 생성하세요.
만약 GitLab을 Linux 패키지로 설치하고 tmpfs
를 사용할 수 있다면,
GitLab이 디렉터리를 자동으로 구성합니다.