Explore의 상관관계 편집기
Explore의 상관관계 편집기
상관관계(Correlations)를 이용하면 임의의 두 데이터 소스 사이에 링크를 만들 수 있어요. Explore의 상관관계 편집기(Correlations Editor)를 사용하면 시각화에 데이터 링크를 붙여, 선택한 데이터를 기반으로 동적 쿼리를 실행할 수 있습니다. 10.1 이상 버전에서 사용할 수 있고, 편집기에서의 변환(transformations)은 10.3 이상 버전에서 쓸 수 있어요.
본문
상관관계 만들기
- 그라파나에서 Explore 페이지로 이동합니다.
- 새 상관관계의 원본(source) 데이터 소스로 사용할 데이터 소스를 선택합니다.
- 지원되는 시각화에서 데이터를 생성하는 쿼리를 실행합니다.
- 상단 툴바에서 + Add를 클릭하고 Add correlation을 선택합니다(Command Palette에서 Correlations Editor를 선택해도 됩니다).
- Explore가 파란색 테두리와 상단 바로 표시되는 상관관계 편집기 모드가 됩니다. 상단 바의 Exit을 클릭하면 편집기 모드를 빠져나올 수 있습니다.
- 이제 데이터에 연결된 링크를 이용해 다음 유형의 새 상관관계를 만들 수 있습니다. Logs – 각 로그 행의 로그 상세 안 필드 값 옆에 링크가 표시됩니다. Table – 모든 테이블 셀이 링크가 됩니다.
- 링크를 클릭해 새 상관관계를 추가합니다. 링크는 상관관계의 결과 필드(result field)로 사용되는 필드와 연결됩니다.
- 열리는 분할 뷰에서 오른쪽 창을 사용해 상관관계의 대상 쿼리 소스를 설정합니다.
- 창 상단에 제공된 목록의 변수를 사용해 변수 문법으로 대상 쿼리를 구성합니다. 목록에는 선택한 데이터 행의 샘플 값이 들어 있습니다.
- 라벨과 설명(선택)을 입력합니다. 라벨은 시각화 안 링크의 이름으로 사용되며 변수를 포함할 수 있습니다.
- 변환(transformations, 선택)을 추가합니다(아래 자세한 설명 참조).
- 상단 툴바에서 Save를 클릭해 상관관계를 저장하고 상관관계 편집기 모드를 종료합니다. 상관관계를 만드는 데 사용된 링크는 각 행의 데이터 링크로 교체됩니다. 링크를 클릭하면 정의한 쿼리가 다른 창에서 실행되며, 변수는 선택한 행의 값으로 동적으로 치환됩니다.
변환(Transformations)
변환을 사용하면 다른 데이터와 함께 필드에 존재하는 값을 추출할 수 있습니다. 예를 들어 변환을 이용해 로그 줄의 일부를 잘라내 상관관계에 사용할 수 있어요.
편집기 모드에서 생성된 링크 중 하나를 클릭한 뒤 Transformations 드롭다운 메뉴에서 Add transformation을 클릭하면 변환을 추가할 수 있습니다.
다음 단계로 상관관계에 변환을 사용할 수 있습니다.
- 변환을 적용할 필드를 선택합니다. 변환에 사용할 필드 부분(예: 로그 줄)을 선택합니다. 선택되면 이 필드의 값이 변환을 만드는 데 도움을 줍니다.
- 변환 유형을 선택합니다. 옵션과 관련 설정은 상관관계 문서를 참조하세요.
- 선택에 따라 변수가 하나 이상 채워지거나, 표시된 옵션에서 추가 지정을 해야 할 수 있습니다.
- Add transformation to correlation을 선택해 지정된 변수를 사용 가능한 변수 목록에 추가합니다.
정규식 참고 사항
이 대화상자에서의 정규식과 관련해, 다른 문서에서 언급하는 mapValue는 여기서 Variable Name이라고 부릅니다. 그라파나는 필드 값에서 표현식과 일치하는 텍스트를 강조 표시합니다. 정규식 캡처 그룹을 사용해 일치 항목 중 어떤 부분을 추출할지 선택합니다. 유효한 정규식이 제공되면 Variable Name 필드 아래에 변수와 그 값이 표시됩니다.
상관관계 예시
다음 예시는 Explore에서 상관관계 편집기를 사용하는 방법을 보여줍니다. 따라 하려면 테스트 데이터 소스(test data source)를 먼저 설정하세요.
텍스트를 그래프로 만드는 상관관계
이 예시는 한 쿼리의 결과를 이용해 임의의 데이터 소스에서 새 쿼리를 실행하는 방법을 보여줍니다. 표 데이터를 렌더링하는 쿼리를 실행하고, 그 데이터를 사용해 그래프 결과를 내는 다른 쿼리를 실행해볼게요.
- 그라파나에서 Explore로 이동합니다.
- 페이지 왼쪽 위 드롭다운 메뉴에서 테스트 데이터 소스를 선택합니다.
- 오른쪽 드롭다운 메뉴에서 + Add를 클릭하고 Add correlation을 선택합니다.
- Explore가 파란색 테두리로 표시되는 상관관계 편집기 모드가 됩니다.
- 시나리오 드롭다운에서 CSV File을 선택합니다.
population_by_state.csv파일을 선택합니다. 각 셀이 링크가 되어 클릭하면 새 상관관계를 만들 수 있습니다.- State 열의 아무 셀이나 클릭해 해당 항목에 데이터 링크를 붙이는 새 상관관계를 만듭니다. 예를 들어 "California"를 선택합니다.
- 분할 뷰에서 왼쪽 창에서 선택한 것과 같은 데이터 소스를 선택합니다. 쿼리 편집기 위의 도우미에는 대상 쿼리에 쓸 수 있는 모든 변수가 들어 있습니다. 변수에는 선택한 행의 모든 데이터 필드(테이블 열)가 포함됩니다.
- Scenario 메뉴에서 CSV Metric Values를 선택합니다. 쿼리 편집기의 String Input 필드가 각 연도의 인구 값 변수
${1980},${2000},${2020}를 제공합니다. 이 변수 값들로 그래프가 생성됩니다. - 쿼리 편집기의 Alias 필드에
${State}를 입력합니다. - 쿼리를 실행해 변수의 샘플 값을 사용한 그래프가 나오는지 확인합니다.
- Save를 클릭해 상관관계를 저장하고 편집기를 종료합니다. 저장 후 Explore는 왼쪽 창의 쿼리를 다시 실행합니다. 상태 이름을 클릭하면 행의 값이 CSV에 삽입되면서 오른쪽 쿼리가 다시 실행되어 그래프가 바뀝니다.
이 단계는 어떤 데이터 소스에도 동일하게 적용할 수 있습니다. 이 예시에선 한 쿼리가 반환한 데이터로 새 쿼리를 만들어 같은 데이터 소스의 다른 시각화를 만들었지만, 서로 다른 데이터 소스 사이에도 상관관계를 만들어 커스텀 탐색 흐름을 구성할 수 있습니다.
로그를 표로 만드는 상관관계
이 예시는 변환을 사용해 로그 줄과 다른 필드에서 값을 추출하는 상관관계를 만드는 방법을 보여줍니다.
- 그라파나에서 Explore로 이동합니다.
- 페이지 왼쪽 위 드롭다운 메뉴에서 테스트 데이터 소스를 선택합니다.
- 오른쪽 드롭다운 메뉴에서 + Add를 클릭하고 Add correlation을 선택합니다.
- Explore가 상관관계 편집기 모드가 됩니다.
- Scenario 메뉴에서 Logs를 선택합니다.
- 로그 줄을 펼쳐 상관관계 링크를 봅니다. Correlate with hostname을 선택합니다.
- Explore가 분할 뷰로 열립니다. 왼쪽 창에서 선택한 것과 같은 데이터 소스를 선택합니다.
- 변환(transformations) 섹션을 펼치고 Add transformation을 클릭합니다.
- Field 드롭다운에서
message를 선택합니다. 로그 줄이 예시 데이터로 표시됩니다. - Type에서 Logfmt를 선택합니다. 변수 목록이 채워집니다.
- Add transformation to correlation을 클릭합니다.
- 다시 Add transformation을 클릭하고 Field에서
hostname을 선택합니다. - Type에서 Regular expression을 선택합니다.
- Expression에 다음을 입력합니다.
-([0-9]\*)이는 대시 오른쪽의 숫자들을 선택합니다. - Variable Name에 다음을 입력합니다.
hostNumber변수 목록이 채워집니다. - Add transformation to correlation을 클릭해 다른 변수에 추가합니다.
- 데이터 소스 편집기의 Scenario 드롭다운에서 CSV Content를 선택합니다.
- 아래 텍스트 상자에 다음을 입력하고 상관관계를 저장합니다.
분할 뷰가 닫히고 왼쪽 쿼리가 다시 실행됩니다. 로그 줄을 펼치면 상관관계 버튼을 볼 수 있습니다. 버튼을 클릭하면csv time,msg,hostNumber,status ${time},${msg},${hostNumber},${status}time(필드),msg(로그 줄에서 logfmt로 추출),hostNumber(hostname에서 정규식으로 추출),status(로그 줄에서 logfmt로 추출)가 포함된 분할 뷰가 열립니다.