익명 사용 통계

익명 사용 통계 (Anonymous usage statistics)

이 문서에서는 Grafana MCP 서버가 Grafana Labs에 보내는 제한된 사용 통계와, 어떤 데이터가 수집되는지, 비활성화(옵트아웃)하는 방법을 알아봐요. Grafana Labs는 이 데이터로 도구를 개선하고 실패를 조사해요.

출처: 문서

본문

익명성을 보장하기 위해 전송되는 데이터는 사용의 *형태(shape)*만을 설명해요. 도구 인자, 리소스 이름, 대시보드, 쿼리, 로그 줄, 오류 메시지, 자격 증명 같은 것은 절대 전송되지 않으며, Grafana 인스턴스의 URL, 호스트 이름, 스택 슬러그(slug), 조직 이름, 조직 ID도 전송되지 않아요.

MCP 클라이언트가 자신에 대해 보고하는 것(이름, 버전 등)도 수집되지 않아요. 바이너리 외부에서 오는 다른 값은 전송되기 전에 고정된 어휘로 축소되므로, 잠재적으로 식별 가능한 값은 내보내지 않아요.

참고 사용 통계 보고는 기본적으로 비활성화되어 있어요. 명시적으로 비활성화하려면 옵트아웃을 참고하세요.

시작하기 전에 (Before you begin)

  • Grafana MCP 서버 설정하기
  • 클라이언트 구성 예시

어떤 데이터가 수집되는지 이해하기 (Understand which data is collected)

각 서버 프로세스는 시작할 때 메모리에 무작위 UUID인 process_id 식별자를 하나 생성해요.

모든 이벤트는 다음 데이터를 담고 있어요:

필드 설명 예시
service 항상 mcp-grafana. mcp-grafana
version mcp-grafana 바이너리 버전. 1.4.2
os 운영 체제. linux, darwin, windows
arch CPU 아키텍처. amd64, arm64
process_id 프로세스별 무작위 UID. UUID
report_reason 이 이벤트가 전송된 이유: interval(4시간마다) 또는 shutdown. interval
process_uptime_ms 이벤트가 만들어졌을 때 프로세스가 실행 중이던 시간(밀리초). 1234
report_seq 이 프로세스의 보고서를 1부터 번호 매긴 값. process_id에서 시퀀스의 공백은 만들어졌지만 도착하지 않은 보고서를 뜻해요. 3
tools_called 이전 이벤트 이후 호출된 도구 이름을 쉼표로 구분한 값. list_datasources,query_prometheus
tool_calls 도구 이름으로 키가 지정된 중첩 객체로, 각각 calls와 errors를 담아요. {"query_prometheus":{"calls":4,"errors":1}}
grafana_version Grafana 인스턴스가 보고한 버전. 서버가 자신의 목적으로 이미 가져온 응답에서 읽으며 64바이트로 잘라요. 해당 버전을 아직 모를 때는 표시되지 않아요. 12.1.0
target_kind Grafana Cloud는 cloud, 다른 호스트 이름은 self_hosted. 커스텀 도메인으로 접근하는 Grafana Cloud 인스턴스는 self_hosted로 보고돼요. cloud
auth_method 연결이 해석된 자격 증명 범주. 고정 어휘에서 가져와요. service_account_token
transport 서버가 실행 중인 전송 방식: stdio, sse 또는 streamable-http. stdio
flags 설정된 명령줄 플래그의 이름. 플래그 값은 전송되지 않아요. disable-write,transport
env_set 설정된 구성 환경 변수의 이름. 자유 형식 값은 전송되지 않아요. GRAFANA_SERVICE_ACCOUNT_TOKEN,GRAFANA_URL
enabled_tools 활성화된 도구 범주 이름. alerting,dashboard,search
disabled_tools --disable-<category> 플래그가 끈 도구 범주 이름. oncall
tls_enabled 서버가 HTTPS를 제공하는지 여부(streamable-http 전송만 가능). false
metrics_enabled Prometheus /metrics 엔드포인트가 제공되는지 여부. true
dynamic_multi_org 호출별 조직 선택이 활성화되었는지 여부. false
proxied_enabled 외부 MCP 서버의 프록시 도구가 활성화되었는지 여부. true

서버 측 보강 (Server-side enrichment)

보고서는 Grafana, Loki, Mimir, Tempo에서 사용 보고를 받는 것과 동일한 Grafana의 사용 통계 서비스가 수신해요. 수신 시 서비스는 이벤트가 아닌 연결에서 파생된 두 가지 정보를 추가해요:

  • 지리적 지역
  • 네트워크 조직 이름

전송될 내용 검사하기 (Inspect what would be sent)

보고서를 검사하려면 --usage-stats=log 플래그 또는 GRAFANA_USAGE_STATS=log 환경 변수를 설정해요. 이 모드에서는 서버가 각 이벤트를 stderr로 출력하고 전송하지 않아요:

GRAFANA_USAGE_STATS=log mcp-grafana

서버는 4시간마다 그리고 정상 종료 시 보고서를 출력해요. 더 빨리 검사하려면 검사할 도구 호출을 실행한 뒤 서버를 정상적으로 중지해요. 터미널에서 서버를 실행 중이라면 Ctrl+C를 눌러요.

stdio 전송 아래에서 stderr는 MCP 클라이언트가 서버 로그를 보내는 곳으로 이동해요. 출력된 이벤트를 거기서 읽어요.

보고서가 전송되는 방식 (How the report is sent)

속성 값
대상 https://stats.grafana.org/mcp-grafana-usage-report
메서드 이벤트를 JSON 객체로 하는 단일 POST
시도 한 번. 실패한 보고서는 재시도되지도 저장되지도 않아요.
타이밍 4시간마다, 그리고 프로세스가 종료될 때 한 번 더
시간 제한 종료 보고서는 1초. 따라서 종료가 그보다 지연되지 않아요

실패한 보고서는 재시도되지 않고, 카운터는 보고서가 도착할 때가 아니라 만들어질 때 리셋되므로, process_id에 걸쳐 합산한 총계는 정확한 수치가 아니라 하한(floor)이에요. 누락된 보고서는 report_seq로 식별돼요.

보고서를 다른 곳으로 보내려면 GRAFANA_USAGE_STATS_ENDPOINT를 다른 URL로 설정해요. 이는 대상만 바꾸며 옵트아웃은 아니에요.

옵트아웃 (Opt out)

다음 제어 중 하나를 사용해요. --usage-stats 플래그가 GRAFANA_USAGE_STATS를 덮어쓰고, 둘 다 DO_NOT_TRACK을 덮어써요. 인식할 수 없는 모드 값은 보고를 비활성화해요. DO_NOT_TRACK=1만 효과가 있으며, 다른 값은 보고 모드를 바꾸지 않아요.

제어는 우선순위 순서(높은 것부터)로 나타내요:

  1. --usage-stats 플래그: enabled, disabled 또는 log로 설정해요.
mcp-grafana --usage-stats=disabled
  1. GRAFANA_USAGE_STATS 환경 변수: enabled, disabled 또는 log로 설정해요.
export GRAFANA_USAGE_STATS=disabled
  1. DO_NOT_TRACK 환경 변수: 보고를 비활성화하려면 1로 설정해요. 도구 간 DO_NOT_TRACK 규약을 따르는 방식이에요.
export DO_NOT_TRACK=1

다음 단계 (Next steps)

  • 명령줄 플래그
  • 관찰 가능성: 메트릭과 추적

더 알아보기 (Learn more)