상관관계(Correlation) 구성
상관관계(Correlation) 구성
상관관계는 한 데이터 소스의 결과에서 다른 데이터 소스로 연결되는 데이터 링크를 만들어요. 각 상관관계는 표시할 레이블, 원본 데이터, 대상 쿼리, 그리고 변환을 통해 원하는 시각화를 구성해요.
출처: Correlation
본문
각 상관관계는 다음 옵션으로 구성돼요.
- 레이블(Label): 시각화에 표시되는 링크 레이블
- 설명(Description): 선택적 설명
- 원본 데이터 소스(Source data source): 링크가 표시되는 결과의 출처
- 결과 필드(Results field): 시각화에서 링크가 표시되는 위치를 정의
- 대상 쿼리(Target query): 링크를 클릭했을 때 실행되는 대상 쿼리
- 변환(Transformations): 대상 쿼리로 전달되는 원본 데이터에 대한 선택적 조작
상관관계를 만드는 방법은 Administration page 또는 provisioning 문서를 참고해요.
원본 데이터 소스와 결과 필드
링크는 상관관계의 원본 데이터 소스에서 나온 결과에 대해 Explore 시각화에 표시돼요. 링크는 상관관계 구성에서 제공된 결과의 필드 중 하나에 할당돼요(결과 필드). 각 시각화는 서로 다른 방식으로 링크가 있는 필드를 표시해요(Correlations in Logs Panel, Correlations in Table 참고).
대상 쿼리
대상 쿼리는 시각화에서 링크를 클릭했을 때 실행돼요. 선택한 대상 데이터 소스의 쿼리 편집기로 대상 쿼리를 지정할 수 있어요. 원본 데이터 결과는 변수를 통해 대상 쿼리 안에서 접근할 수 있어요.
상관관계 변수 (Correlation Variables)
대상 쿼리 안에서 변수를 사용해 쿼리와 관련된 원본 데이터에 접근할 수 있어요. 상관관계는 Grafana 변수 구문을 사용해요. 링크를 클릭하면 변수는 원본 결과의 값으로 채워져요. 두 가지 유형의 변수를 사용할 수 있어요.
- 필드 변수(field variables) — 필드 값과 레이블에 접근
- 상관관계 변수(correlation variables) — 필드 값과 변환에 접근
예: 원본 결과에 "employee"라는 필드가 있다면, 그 필드 값은 다음으로 접근해요.
- 필드 변수
${__data.fields.employee} - 위 필드 값을
${employee}에 매핑하는 상관관계 변수
필드 값을 더 짧은 변수 이름에 매핑하는 것 외에도, 기존 필드에 변환을 적용해 더 많은 상관관계 변수를 만들 수 있어요. 자세한 내용은 Use variables and transformations in a correlation 예제를 참고해요.
상관관계는 선택한 데이터 행의 모든 변수에 값이 있을 때만 데이터 링크를 만들어요. 전역 변수(Global variables)는 이 규칙의 예외이며 반환된 데이터에서 채워질 필요가 없어요. 이 변수는 데이터 소스가 자동으로 보간해요.
상관관계 변환 (Correlation Transformations)
상관관계는 필드 값에서 더 많은 변수를 추출하는 방법을 제공해요. 변환의 출력은 다른 변수처럼 접근할 수 있는 새 변수 집합이에요. 두 가지 유형의 변환이 있어요: logfmt와 regular expression.
각 변환은 선택한 필드 값을 입력으로 사용해요. 변환의 출력은 변환 유형과 옵션에 따른 새 변수 집합이에요.
자세한 내용은 Use variables and transformations in a correlation 예제를 참고해요.
Logfmt 변환
logfmt 변환은 logfmt 키/값 쌍으로 형식화된 텍스트를 담은 필드 값을 분해해요. 각 쌍은 키가 변수 이름이 되는 변수가 돼요.
logfmt 변환은 변환이 결과 필드와 다른 필드에 적용되길 원할 때만 입력 필드 이름을 지정하면 돼요.
field = "host=srv001 endpoint=/test app=foo"에 대한 출력 변수 예:
| name | value |
|---|---|
| host | srv001 |
| endpoint | /test |
| app | foo |
정규식 변환 (Regular expression transformation)
정규식 변환은 제공된 정규식에 따라 필드 값을 분해해요. 정규식 변환 옵션:
- field: 입력 필드 이름
- expression: 정규식. 이름 붙은 캡처 그룹은 그룹 이름과 일치하는 변수에 매핑돼요. 이름 없는 일치 그룹이 사용되면 첫 번째 일치로 변수가 만들어져요. 값은 입력 필드와 일치하는 변수를 덮어쓰거나, mapValue가 주어지면 새 변수를 만들어요(아래 예시 참고)
- mapValue: 이름 없는 정규식 그룹과 함께 사용돼요. 기본적으로 첫 번째 일치는 입력으로 사용된 필드 이름의 변수를 덮어써요. 이 기본 동작을 바꾸려면 mapValue 속성을 지정할 수 있어요. 제공된 이름은 새 변수를 만드는 데 사용돼요. 이는 대상 쿼리가 정확한 값과 변환으로 추출한 값의 일부를 모두 필요로 할 때 유용해요.
예: 선택된 필드 이름이 "employee"이고 필드 값이 "John Doe"라고 가정해요. expression과 mapValue 옵션에 따른 다양한 출력 변수:
| expression | mapValue | output variables | comment |
|---|---|---|---|
/\w+ (\w+)/ |
- | employee=Doe | mapValue 미제공. 첫 번째 일치가 기존 필드 이름 변수(employee)에 매핑됨 |
/(\w+) (\w+)/ |
name | name=John | 첫 번째 일치가 "name"이라는 새 변수에 매핑됨 |
/(?\w+) (?\w+)/ |
- | firstName=John, lastName=Doe | 이름 붙은 그룹이 사용되면 이들이 출력 변수 이름이 되고 mapValue는 무시됨 |
/(?\w+) (?\w+)/ |
name | firstName=John, lastName=Doe | 위와 동일 |