

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 데이터 원본에 연결
데이터 소스

Amazon Managed Grafana는 여러 많은 *데이터 소스*를 지원합니다. 데이터 소스는 Grafana에서 쿼리하여 대시보드 빌드와 같은 작업을 수행할 수 있는 스토리지 백엔드입니다. 각 데이터 소스에는 특정 데이터 소스가 공개하는 특성 및 기능에 맞게 사용자 지정된 특정 쿼리 편집기가 있습니다.

각 데이터 소스의 쿼리 언어와 기능은 서로 다릅니다. 여러 데이터 소스의 데이터를 단일 대시보드에 결합할 수 있습니다.

Amazon Managed Grafana를 사용하는 모든 AWS 계정은 여러 데이터 소스를 생성하거나 구성할 수 있는 액세스 권한이 있습니다. 일부 데이터 소스에서는 해당 데이터 소스에 대해 해당하는 플러그인을 설치해야 합니다. 워크스페이스를 Amazon Managed Grafana Enterprise 플러그인으로 업그레이드하는 경우 Enterprise 데이터 소스에 대한 플러그인도 설치해야 할 수 있습니다. 다음 섹션에서는 사용 가능한 많은 데이터 소스의 세부 정보를 설명하지만 Grafana 커뮤니티에서 때때로 워크스페이스 내 [플러그인 카탈로그](grafana-plugins.md#plugin-catalog)에서 사용할 수 있는 새 데이터 소스를 추가합니다.

**참고**  
계정에서 AWS 리소스를 검색하고 쿼리할 데이터 소스를 설정하는 데 도움이 되도록 Amazon Managed Grafana는를 제공합니다[AWS 데이터 소스 플러그인을 사용하여 AWS 데이터 찾기](aws-datasources-plugin.md).

## 특수 데이터 소스


Amazon Managed Grafana에는 세 가지 특수 데이터 소스가 포함되어 있습니다.
+ **Grafana**(이전 버전의 Grafana에서는 *TestDB*라고 함) - 이 기본 제공 데이터 소스를 사용하여 무작위 워크 데이터를 생성하거나 파일을 나열합니다. 이는 시각화를 테스트하고 실험을 실행하는 데 유용합니다.
+ **혼합** - 동일한 패널의 여러 데이터 소스를 쿼리하는 데 사용합니다. 이 데이터 소스를 사용하면 추가하는 모든 새 쿼리에 대한 데이터 소스를 지정할 수 있습니다. 첫 번째 쿼리는 **혼합**을 선택하기 전에 지정한 데이터 소스를 사용합니다.

   혼합 데이터 소스를 사용하도록 기존 쿼리를 변경할 수 없습니다.
+ **대시보드** - 동일한 대시보드에서 다른 패널의 결과 세트를 사용하는 데 사용합니다.

**중요**  
Amazon Managed Grafana에는 데이터 소스 제한 시간이 있으며, 데이터 소스에 구성된 제한 시간을 재정의할 수 있습니다. 두 제한 중 더 낮은 값이 다른 제한을 대체합니다. Amazon Managed Grafana 데이터 소스 제한 시간에 대한 자세한 내용은 *AWS 일반 참조*의 [Amazon Managed Grafana Service Quotas를 참조하세요](https://docs.aws.amazon.com/general/latest/gr/grafana-service.html#grafana-quotas).

**Topics**
+ [

## 특수 데이터 소스
](#AMG-data-sources-special)
+ [

# Amazon Managed Grafana가 AWS 데이터 소스 액세스를 AWS Organizations 위해와 작동하는 방법
](AMG-and-Organizations.md)
+ [

# 기본 제공 데이터 소스에 연결합니다.
](AMG-data-sources-builtin.md)
+ [

# Enterprise 데이터 소스에 연결
](AMG-data-sources-enterprise.md)

# Amazon Managed Grafana가 AWS 데이터 소스 액세스를 AWS Organizations 위해와 작동하는 방법
작업 AWS Organizations

를 사용하면 여러 AWS 계정에 대한 데이터 소스 구성 및 권한 설정을 중앙에서 관리할 AWS Organizations수 있습니다. Amazon Managed Grafana 워크스페이스가 AWS 계정 있는 에서는 기본 계정에서 AWS 데이터 소스를 볼 수 있도록 다른 조직 단위를 지정할 수 있습니다.

예를 들어 조직의 계정 하나를 Amazon Managed Grafana *관리 계정*으로 사용하고 이 계정에 조직의 다른 계정에 있는 데이터 소스에 대한 액세스 권한을 부여할 수 있습니다. 관리 계정에서 관리 계정으로 액세스하려는 AWS 데이터 소스가 있는 모든 조직 단위를 나열합니다. 이렇게 하면 이러한 데이터 소스를 설정하는 데 필요한 역할 및 권한 정책이 자동으로 생성됩니다. 이는 Amazon Managed Grafana 워크스페이스의 Grafana 콘솔에서 확인할 수 있습니다.

자세한 내용은 [AWS Organizations란 무엇인가요?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)를 참조하세요.

Amazon Managed Grafana는 CloudFormation StackSets를 사용하여 Amazon Managed Grafana가 AWS 조직 전체의 데이터 소스에 연결하는 데 필요한 AWS Identity and Access Management (IAM) 역할을 자동으로 생성합니다. Amazon Managed Grafana가 IAM 정책을 관리하여 조직 전체의 데이터 소스에 액세스하려면 먼저 조직의 관리 계정에서 AWS CloudFormation StackSets를 활성화해야 합니다. Amazon Managed Grafana는 처음에 필요할 때 자동으로 이 기능을 활성화합니다.

## AWS IAM Identity Center 및 Organizations와의 통합을 위한 배포 시나리오


 AWS IAM Identity Center 및 Organizations와 함께 Amazon Managed Grafana를 사용하는 경우 다음 세 가지 시나리오 중 하나를 사용하여 조직에 Amazon Managed Grafana 워크스페이스를 생성하는 것이 좋습니다. 각 시나리오에 대해 충분한 권한이 있는 계정으로 로그인해야 합니다. 자세한 내용은 [Amazon Managed Grafana에 대한 샘플 정책](security_iam_id-based-policy-examples.md#security_iam_AMG-id-based-policy-examples) 단원을 참조하십시오.

**독립 실행형 계정**

독립 실행형 계정은 Organizations에서 조직의 멤버가 아닌 AWS 계정입니다. 처음으로 시도하는 경우이 시나리오가 발생할 수 AWS 있습니다.

이 시나리오에서 Amazon Managed Grafana는 **AWSGrafanaAccountAdministrator**, **AWSSSOMemberAccountAdministrator** 및 **AWSSSODirectoryAdministrator** 정책이 있는 계정에 로그인하면 및 AWS IAM Identity Center Organizations를 자동으로 활성화합니다. 자세한 내용은 [IAM Identity Center를 사용하여 단일 독립 실행형 계정에서 Amazon Managed Grafana 워크스페이스와 사용자 생성 및 관리](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-create-workspace-standalone) 단원을 참조하십시오.

**IAM Identity Center가 이미 구성된 기존 조직의 멤버 계정**

멤버 계정에 워크스페이스를 생성하려면 **AWSGrafanaAccountAdministrator**, **AWSSSOMemberAccountAdministrator** 및 **AWSSSODirectoryAdministrator** 정책이 있는 계정으로 로그인해야 합니다. 자세한 내용은 [IAM Identity Center를 사용하는 멤버 계정의 Grafana 관리자](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-admin-member) 단원을 참조하십시오.

멤버 계정에서 워크스페이스를 생성하고 해당 워크스페이스가 조직의 다른 AWS 계정에서 리소스에 액세스하도록 하려면 워크스페이스에서 고객 관리형 권한을 사용해야 합니다. 자세한 내용은 [고객 관리형 권한](AMG-manage-permissions.md#AMG-customer-managed) 단원을 참조하십시오.

서비스 관리형 권한을 사용하여 워크스페이스가 조직의 다른 AWS 계정에서 리소스에 액세스하도록 허용하려면 조직의 관리 계정에서 워크스페이스를 생성해야 합니다. 하지만 조직의 관리 계정에서 Amazon Managed Grafana 워크스페이스 또는 기타 리소스를 생성하는 것은 모범 사례가 아닙니다. Organizations 모범 사례에 대한 자세한 내용은 [관리 계정의 모범 사례](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_best-practices_mgmt-acct.html)를 참조하세요.

**참고**  
2019년 11월 25일 이전에 관리 계정 AWS IAM Identity Center 에서를 활성화한 경우 관리 계정에서 IAM Identity Center 통합 애플리케이션도 활성화해야 합니다. 선택적으로 관리 계정에서 IAM Identity Center 통합 애플리케이션을 활성화한 후 멤버 계정에서 활성화할 수도 있습니다. 이러한 애플리케이션을 활성화하려면 IAM Identity Center **설정** 페이지 내의 IAM Identity Center 통합 애플리케이션 섹션에서 **액세스 활성화**를 선택합니다. 자세한 내용은 [IAM Identity Center-integrated application enablement](https://docs.aws.amazon.com/singlesignon/latest/userguide/app-enablement.html)를 참조하세요.

**IAM Identity Center가 아직 배포되지 않은 기존 조직의 멤버 계정**

이 시나리오에서는 먼저 조직 관리자로 로그인하고 조직에서 IAM Identity Center를 활성화합니다. 그런 다음, 조직의 멤버 계정에서 Amazon Managed Grafana 워크스페이스를 생성합니다.

조직 관리자가 아닌 경우 조직 관리자에게 문의하여 IAM Identity Center를 활성화하도록 요청해야 합니다. IAM Identity Center가 활성화된 후 멤버 계정에서 워크스페이스를 생성할 수 있습니다.

멤버 계정에서 워크스페이스를 생성하고 해당 워크스페이스가 조직의 다른 AWS 계정에서 리소스에 액세스하도록 하려면 워크스페이스에서 고객 관리형 권한을 사용해야 합니다. 자세한 내용은 [고객 관리형 권한](AMG-manage-permissions.md#AMG-customer-managed) 단원을 참조하십시오.

멤버 계정에 워크스페이스를 생성하려면 **AWSGrafanaAccountAdministrator**, **AWSSSOMemberAccountAdministrator** 및 **AWSSSODirectoryAdministrator** 정책이 있는 계정으로 로그인해야 합니다. 자세한 내용은 [IAM Identity Center를 사용하는 멤버 계정의 Grafana 관리자](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-admin-member) 단원을 참조하십시오.

# 기본 제공 데이터 소스에 연결합니다.
기본 제공 데이터 소스

다음 데이터 소스는 모든 Amazon Managed Grafana 워크스페이스에서 지원됩니다.

버전 9 이상을 지원하는 워크스페이스의 경우 이러한 데이터 소스 중 일부는 기본적으로 설치되지 않을 수 있습니다. 코어 데이터 소스는 모든 설치에서 사용할 수 있지만 코어 세트에 포함되지 않은 데이터 소스를 사용하려면 올바른 Grafana 플러그인을 설치해야 할 수 있습니다. 여기에 나열되지 않은 추가 데이터 소스에 대한 플러그인을 설치할 수 있습니다. 플러그인 관리에 대한 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 섹션을 참고하세요.

**Topics**
+ [Alertmanager](data-source-alertmanager.md)
+ [Amazon CloudWatch](using-amazon-cloudwatch-in-AMG.md)
+ [Amazon OpenSearch Service](using-Amazon-OpenSearch-in-AMG.md)
+ [AWS IoT SiteWise](using-iotsitewise-in-AMG.md)
+ [AWS IoT TwinMaker](AMG-iot-twinmaker.md)
+ [Prometheus](prometheus-data-source.md)
+ [Amazon Timestream](timestream-datasource.md)
+ [Amazon Athena](AWS-Athena.md)
+ [Amazon Redshift](AWS-Redshift.md)
+ [AWS X-Ray](x-ray-data-source.md)
+ [Azure 모니터](using-azure-monitor-in-AMG.md)
+ [Graphite](using-graphite-in-AMG.md)
+ [Google Cloud Monitoring](using-google-cloud-monitoring-in-grafana.md)
+ [InfluxDB](using-influxdb-in-AMG.md)
+ [Jaeger](jaeger-data-source.md)
+ [Loki](using-loki-in-AMG.md)
+ [Microsoft SQL Server](using-microsoft-sql-server-in-AMG.md)
+ [MySQL](using-mysql-in-AMG.md)
+ [OpenSearch](using-opensearch-in-AMG.md)
+ [OpenTSDB](using-opentsdb-in-AMG.md)
+ [PostgreSQL](using-postgresql-in-AMG.md)
+ [Tempo](tempo-data-source.md)
+ [TestData](testdata-data-source.md)
+ [Zipkin](zipkin-data-source.md)

# Alertmanager 데이터 소스에 연결
Alertmanager

Grafana에는 Prometheus Alertmanager에 대한 기본 지원이 포함되어 있습니다. Grafana 알림이 구성되면 Grafana 알림 UI를 사용하여 무음, 연락 지점 및 알림 정책을 관리할 수 있습니다. 이 페이지의 드롭다운 옵션을 사용하면 Grafana와 구성된 Alertmanager 데이터 소스 사이를 전환할 수 있습니다.

**Alertmanager 구현**

Alertmanager의 [Prometheus](https://prometheus.io/), [Cortex](https://cortexmetrics.io/) 및 [Grafana Mimir](https://grafana.com/docs/mimir/latest/) 구현이 지원됩니다. 데이터 소스 설정 페이지에서 구현을 지정할 수 있습니다. Prometheus 연락 지점 및 알림 정책은 HTTP API를 통한 구성 업데이트를 지원하지 않으므로 Grafana 알림 UI에서 읽기 전용입니다.

## Alertmanager 데이터 소스 구성


Grafana 알림과 함께 사용하도록 Alertmanager 데이터 소스를 구성할 수 있습니다.

**사전 조건**

Alertmanager를 구성하려면 다음 사전 조건을 완료해야 합니다.
+ 수집된 지표와 하나 이상의 알림 또는 기록 규칙이 구성된 Prometheus 인스턴스. 워크스페이스의 URL이 필요합니다.
+ Amazon Managed Grafana가 Alertmanager 구현의 알림, 알림 그룹, 무음 및 연락 지점에 대한 읽기 액세스 권한을 갖도록 정의된 권한.

**Alertmanager 데이터 소스를 구성하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **구성** 아래 **데이터 소스** 페이지를 선택하세요.

1. **데이터 소스 추가**를 선택하고 데이터 소스 유형 목록에서 **Alertmanager**를 선택하세요.

1. 새 데이터 소스에 대해 다음 정보를 제공합니다.
   + **이름**에서 데이터 소스에 대해 선택한 이름을 제공하세요.
   + **구현**에서 Alertmanager 구현 - **Prometheus**, **Mimir** 또는 **Cortex**를 선택하세요.
   + **HTTP**의 **URL**에서 Alertmanager URL을 제공하세요. Prometheus의 경우 워크스페이스 URL(`alertmanager`가 추가됨)입니다. 예를 들어 `https://myprometheus/workspaces/ws-example-1234-5678-abcd-xyz00000001/alertmanager`입니다.
   + **인증**에서 Alertmanager 구현에 액세스하는 데 필요한 인증 세부 정보를 구성합니다.

1. **저장 및 테스트**를 선택하여 데이터 소스 설정을 완료하세요.

   데이터 소스가 올바르게 설정된 경우 **상태 확인 통과** 메시지가 표시됩니다.

# Amazon CloudWatch 데이터 소스에 연결
Amazon CloudWatch

Amazon Managed Grafana를 사용하면 Grafana 워크스페이스 콘솔의 데이터 소스 구성 옵션을 사용하여 Amazon CloudWatch를 AWS 데이터 소스로 추가할 수 있습니다. 이 기능은 기존 CloudWatch 계정을 검색하여 CloudWatch를 데이터 소스로 추가하는 작업을 간소화하고 CloudWatch에 액세스하는 데 필요한 인증 자격 증명의 구성을 관리합니다. 이 방법을 사용하여 인증을 설정하고 CloudWatch를 데이터 소스로 추가할 수 있습니다. 또는 자체 관리형 Grafana 서버에서와 동일한 방법을 사용하여 데이터 소스와 필요한 인증 자격 증명을 수동으로 설정할 수 있습니다.

**Topics**
+ [

# AWS 데이터 소스 구성을 사용하여 CloudWatch를 데이터 소스로 추가
](adding-CloudWatch-AWS-config.md)
+ [

# 수동으로 CloudWatch를 데이터 소스로 추가
](adding--CloudWatch-manual.md)
+ [

# 쿼리 편집기 사용하기
](CloudWatch-using-the-query-editor.md)
+ [

# 큐레이션된 대시보드
](CloudWatch-curated-dashboards.md)
+ [

# 템플릿 기반 쿼리
](cloudwatch-templated-queries.md)
+ [

# ec2\$1instance\$1attribute 예제 사용
](cloudwatch-ec2-instance-attribute-examples.md)
+ [

# JSON 형식 템플릿 변수 사용
](cloudwatch-using-json-format-template-variables.md)
+ [

# 가격 책정
](cloudwatch-pricing.md)
+ [

# Service Quotas
](cloudwatch-service-quotas.md)
+ [

# 교차 계정 관찰성
](cloudwatch-cross-account.md)

# AWS 데이터 소스 구성을 사용하여 CloudWatch를 데이터 소스로 추가


 AWS 데이터 소스 구성을 사용하려면 먼저 Amazon Managed Grafana 콘솔을 사용하여 계정 또는 전체 조직 단위에서 CloudWatch 리소스를 읽는 데 필요한 IAM 정책을 워크스페이스에 부여하는 서비스 관리형 IAM 역할을 활성화합니다. 그런 다음, Amazon Managed Grafana 워크스페이스 콘솔을 사용하여 CloudWatch를 데이터 소스로 추가합니다.

**AWS 데이터 소스 구성을 사용하여 CloudWatch를 데이터 소스로 추가하려면**

1. [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)에서 Amazon Managed Grafana 콘솔을 엽니다.

1. 탐색 창에서 메뉴 아이콘을 선택하고 **모든 워크스페이스**를 선택하세요.

1. 워크스페이스 이름을 선택하세요.

1. 이 워크스페이스를 생성할 때이 워크스페이스에 서비스 관리형 권한을 사용하도록 선택하지 않은 경우 Grafana 워크스페이스 콘솔에서 AWS 데이터 소스 구성 옵션을 사용할 수 있도록 적절한 IAM 역할 및 정책이 활성화되도록 고객 관리형 권한을 사용하여 서비스 관리형 권한을 사용하는 것으로 변경합니다. 이를 수행하려면 **IAM 역할** 옆의 편집 아이콘을 선택하고 **서비스 관리형**, **변경 사항 저장**을 선택하세요. 자세한 내용은 [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md) 단원을 참조하십시오.

1. **데이터 소스** 탭을 선택하세요.

1. **Amazon CloudWatch** 확인란을 선택하고 **작업**, **서비스 관리형 정책 활성화**를 선택하세요.

1. **데이터 소스** 탭을 다시 선택하세요.

1. **Amazon CloudWatch** 행에서 **Grafana에서 구성**을 선택하세요.

1. 필요한 경우 IAM Identity Center를 사용하여 Grafana 워크스페이스 콘솔에 로그인합니다.

1. Grafana 워크스페이스 콘솔의 탐색 표시줄에서 AWS 아이콘을 선택한 다음, **AWS 서비스**, **CloudWatch**를 선택하세요.

1. CloudWatch 데이터 소스에서 쿼리할 기본 리전을 선택하세요.

1. 원하는 계정을 선택한 다음, **데이터 소스 추가**를 선택하세요.

# 수동으로 CloudWatch를 데이터 소스로 추가


**수동으로 CloudWatch 데이터 소스를 추가하는 방법**

1. Grafana 콘솔 사이드 메뉴에서 **구성**(톱니) 아이콘 위에 마우스를 올려 놓고 **데이터 소스**를 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

1. **CloudWatch** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에서 **CloudWatch**를 입력하기 시작하면 해당 항목을 찾는 데 도움이 됩니다.

## CloudWatch 설정


다음 CloudWatch 설정이 적용됩니다.


| 이름 | 설명 | 
| --- | --- | 
|  `Name`  | 데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  `Default`  | 새 패널에 대해 사전에 선택할 데이터 소스를 지정합니다. | 
|  `Default Region`  | 쿼리 편집기에서 리전을 설정합니다. 쿼리별 기준으로 변경할 수 있습니다. | 
|  `Namespaces of Custom Metrics`  | 사용자 지정 지표의 CloudWatch 네임스페이스를 지정합니다. 쉼표로 구분된 여러 네임스페이스를 포함할 수 있습니다. | 
|  `Auth Provider`  | 자격 증명을 가져올 제공업체를 지정합니다. | 
|  `Assume Role Arn`  | 수임할 역할의 Amazon 리소스 이름(ARN)을 지정합니다. | 
|  `External ID`  | (선택 사항) 외부 ID를 지정합니다. 외부 ID로 생성된 다른에서 역할을 수임 AWS 계정 하는 경우를 사용합니다. | 
| `Timeout` | 특별히 CloudWatch Logs 쿼리에 대한 제한 시간을 구성합니다. | 
| `X-Ray trace links` | 로그에 `@xrayTraceId` 필드가 포함된 경우 로그에서 링크를 자동으로 추가하려면 데이터 소스 구성의 **X-Ray 추적 링크** 섹션에서 X-Ray 데이터 소스를 연결합니다. [X-Ray 데이터 소스](x-ray-data-source.md)가 이미 구성되어 있어야 합니다. | 

### Authentication


Amazon Managed Grafana 및 CloudWatch 간 인증을 활성화하려면 Amazon Managed Grafana 콘솔을 사용하여 필요한 정책 및 권한을 빠르게 생성할 수 있습니다. 또는 자체 관리형 Grafana 서버에서와 동일한 몇 가지 방법을 사용하여 인증을 수동으로 설정할 수 있습니다.

Amazon Managed Grafana 데이터 소스 구성을 사용하여 정책을 빠르게 설정하려면 [AWS 데이터 소스 구성을 사용하여 CloudWatch를 데이터 소스로 추가](adding-CloudWatch-AWS-config.md)의 단계를 수행합니다.

권한을 수동으로 설정하려면 다음 섹션의 방법 중 하나를 사용합니다.

#### AWS 자격 증명


세 가지 인증 방법을 사용할 수 있습니다.
+ **AWS SDK 기본값** - 워크스페이스에 연결된 역할에 정의된 권한을 사용합니다. 자세한 내용은 [고객 관리형 권한](AMG-manage-permissions.md#AMG-customer-managed) 단원을 참조하십시오.
+ **액세스 및 보안 키** - AWS SDK for Go `StaticProvider`에 해당합니다. 주어진 액세스 키 ID 및 보안 암호 키를 사용하여 인증합니다. 이 방법에는 폴백이 없으며 제공된 키 페어가 작동하지 않으면 실패합니다.

#### IAM 역할


 현재 CloudWatch에 대한 모든 액세스는 공식 AWS SDK를 사용하여 Grafana 백엔드에서 서버 측에서 수행됩니다. *AWS SDK 기본* 인증 방법을 선택하고 Grafana 서버가 실행 중인 경우 IAM 역할을 사용하여 인증을 자동으로 처리할 AWS수 있습니다.

 자세한 내용은 [IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)을 참조하세요.

#### IAM 정책


Grafana는 CloudWatch 지표와 EC2 태그, 인스턴스, 리전을 읽을 수 있도록 IAM을 통해 부여된 권한이 필요합니다. 이러한 권한을 IAM 역할에 연결하고 역할 수임을 위해 기본 제공 Grafana 지원을 사용할 수 있습니다.

 다음 코드 예제에서는 최소 정책을 보여줍니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowReadingMetricsFromCloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarmsForMetric",
                "cloudwatch:DescribeAlarmHistory",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetInsightRuleReport"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingLogsFromCloudWatch",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:GetLogGroupFields",
                "logs:StartQuery",
                "logs:StopQuery",
                "logs:GetQueryResults",
                "logs:GetLogEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingTagsInstancesRegionsFromEC2",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeTags",
                "ec2:DescribeInstances",
                "ec2:DescribeRegions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingResourcesForTags",
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingAcrossAccounts",
            "Effect": "Allow",
            "Action": [
                "oam:ListSinks",
                "oam:ListAttachedLinks"
            ],
            "Resource": "*"
        }
    ]
}
```

------

#### 역할 수임


 `Assume Role ARN` 필드를 사용하면 해당되는 경우 수임할 IAM 역할을 지정할 수 있습니다. 이 정보를 비워 두면 제공된 자격 증명을 직접 사용하며, 연결된 역할 또는 사용자에게 필요한 권한이 있어야 합니다. 이 필드가 비어 있지 않으면 제공된 자격 증명이 `sts:AssumeRole` 직접 호출을 수행하는 데 사용됩니다.

# 쿼리 편집기 사용하기


Amazon Managed Grafana의 CloudWatch 데이터 소스는 CloudWatch로 데이터를 전송하는 다양한 AWS 서비스에서 지표와 로그를 검색하고 분석할 수 있는 강력한 쿼리 편집기를 제공합니다. 쿼리 편집기에서는 지표 검색 및 CloudWatch Logs라는 두 가지 고유한 쿼리 모드를 지원합니다.

지표에 대한 쿼리 편집기 모드에서는 CloudWatch API를 사용하여 CloudWatch에 업로드된 지표를 찾습니다. 로그에 대한 모드에서는 CloudWatch Logs API를 사용하여 로그 레코드를 찾습니다. 각 모드에는 고유한 특수 쿼리 편집기가 있습니다. 편집기 상단의 쿼리 모드 스위치를 사용하여 쿼리할 API를 선택하세요.

**Topics**
+ [

# 지표 쿼리 편집기 사용
](CloudWatch-using-the-metric-query-editor.md)
+ [

# Amazon CloudWatch Logs 쿼리 편집기 사용
](CloudWatch-using-the-logs-query-editor.md)

# 지표 쿼리 편집기 사용


지표 쿼리 편집기를 사용하면 **지표 검색** 및 **지표 쿼리**와 같은 두 가지 유형의 쿼리를 빌드할 수 있습니다. **지표 쿼리** 옵션은 CloudWatch Metrics Insights를 사용하여 데이터를 쿼리합니다.

## 공통 쿼리 편집기 필드


 **지표 검색** 및 **지표 쿼리** 모드 모두에 공통된 세 가지 필드가 있습니다.

 **공통 필드**

**Id**  
`GetMetricData` API를 사용하려면 모든 쿼리에 고유한 ID가 있어야 합니다. 이 필드를 사용하여 원하는 ID를 지정합니다. ID는 숫자, 문자, 밑줄을 포함할 수 있으며, 소문자로 시작해야 합니다. ID를 지정하지 않은 경우 Amazon Managed Grafana는 `query[refId of the current query row]` 패턴을 사용하여 ID를 생성합니다. 예를 들어 `queryA`는 패널 편집기의 첫 번째 쿼리 행을 나타냅니다.

**Period**  
기간은 특정 Amazon CloudWatch 통계와 연관된 시간의 길이입니다. 기간은 초 단위로 정의됩니다. 유효한 값으로, 1, 5, 10, 30 또는 60의 배수가 포함됩니다. 기간 필드를 비워 두거나 `auto`로 설정하면 시간 범위 및 CloudWatch 보존 정책에 따라 자동으로 계산됩니다. 사용하는 수식은 `time range in seconds / 2000`입니다. 이에 따라 보존을 기반으로 기간을 제거한 후 미리 정의된 기간 배열 [60, 300, 900, 3600, 21600, 86400]에서 다음으로 높은 값으로 이동합니다. Amazon Managed Grafana에서 사용 중인 기간을 확인하려면 쿼리 편집기에서 **쿼리 미리 보기 표시**를 선택하세요.

**Alias**  
다음 별칭 패턴이 적용됩니다.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/grafana/latest/userguide/CloudWatch-using-the-metric-query-editor.html)

# 지표 검색 옵션 사용


 **지표 검색**에서 유효한 쿼리를 생성하려면 네임스페이스, 지표 이름 및 하나 이상의 통계를 지정해야 합니다. **정확히 일치**가 켜져 있는 경우 쿼리하려는 지표의 모든 차원도 지정해야 합니다. 지표 스키마는 정확히 일치해야 합니다. 자세한 내용은 [CloudWatch 검색 표현식 구문](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-syntax.html)을 참조하세요.

**정확히 일치**가 꺼진 경우 필터링하려는 차원 수를 지정할 수 있습니다. 필터 기준과 일치하는 최대 100개의 지표가 반환됩니다.

## 차원 와일드카드 문자를 사용한 동적 쿼리


 하나 이상의 차원 값에 별표(`*`) 와일드카드 문자를 사용하여 동적 지표 목록을 모니터링할 수 있습니다.

 이를 통해 EC2 인스턴스 또는 컨테이너와 같은 AWS 리소스에 대한 지표를 모니터링할 수 있습니다. 예를 들어 새로운 인스턴스가 오토 스케일링 이벤트의 일환으로 생성되면 새로운 인스턴스 ID를 추적하지 않아도 그래프에 자동으로 표시됩니다. 이 기능은 현재 최대 100개의 지표 검색으로 제한됩니다. **쿼리 미리 보기 표시**를 선택하여 와일드카드 문자를 지원하도록 자동으로 빌드된 검색 표현식을 볼 수 있습니다.

 기본적으로 검색 표현식은 쿼리된 지표가 정의된 차원 이름과 정확히 일치해야 하는 방식으로 정의됩니다. 즉, 이 예제에서는 정확히 하나의 `InstanceId` 차원을 포함하는 지표만 반환됩니다.

 다른 차원이 정의된 지표를 포함하려면 **정확히 일치**를 끄면 됩니다. 또한 **정확히 일치**를 끄면 와일드카드 문자를 사용하지 않더라도 검색 표현식이 생성됩니다. Grafana는 최소한 네임스페이스, 지표 이름 및 정의된 모든 차원과 일치하는 지표를 검색합니다.

## 다중 값 템플릿 변수


 다중 값 템플릿 변수를 기반으로 차원 값을 정의할 때 검색 표현식을 사용하여 일치하는 지표를 쿼리합니다. 이렇게 하면 하나의 쿼리에서 여러 템플릿 변수를 사용할 수 있습니다. 또한 **정확히 일치** 옵션이 꺼진 쿼리에서 템플릿 변수를 사용할 수 있습니다.

 검색 표현식은 현재 1,024자로 제한되므로 값 목록이 긴 경우 쿼리가 실패할 수 있습니다. 특정 차원 이름에 대한 값이 있는 모든 지표를 쿼리하려면 `All` 옵션 대신 별표(`*`) 와일드카드 문자를 사용하는 것이 좋습니다.

 다중 값 템플릿 변수의 사용은 차원 값에 대해서만 지원됩니다. `Region`, `Namespace` 또는 `Metric Name`에 다중 값 템플릿 변수를 사용하는 것은 지원되지 않습니다.

## 지표 수학 표현식


 수학 함수를 사용해 CloudWatch 지표 위에서 연산을 수행하여 새 시계열 지표를 생성할 수 있습니다. 산술 연산자, 단항 뺄셈 및 기타 함수가 지원되며 CloudWatch 지표에 적용할 수 있습니다. 지표 수학에 대한 자세한 설명은 [지표 수학 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)을 참조하세요.

 예를 들어 지표에 산술 연산을 적용하려면 원시 지표에 ID(고유 문자열)를 지정합니다. 그런 다음, 이 ID를 사용하고 새 지표의 `Expression` 필드에 산술 연산을 적용할 수 있습니다.

 `Expression` 필드를 사용하여 `queryA * 2`와 같은 다른 쿼리를 참조하는 경우 해당 쿼리를 기반으로 알림 규칙을 생성할 수 없습니다.

## Period


 ‘기간’은 특정 Amazon CloudWatch 통계와 연관된 시간의 길이입니다. 기간은 초 단위로 정의됩니다. 유효한 값으로, 1, 5, 10, 30 또는 60의 배수가 포함됩니다.

기간 필드를 비워 두거나 **자동**으로 설정하면 시간 범위에 따라 자동으로 계산됩니다. 사용된 공식은 `time range in seconds / 2000`이며, 이후 미리 정의된 기간 `[60, 300, 900, 3600, 21600, 86400]`의 배열에서 다음으로 높은 값으로 이동합니다. Amazon Managed Grafana에서 사용 중인 기간을 확인하려면 쿼리 편집기에서 **쿼리 미리 보기 표시**를 선택하세요.

## Grafana 패널에서 CloudWatch 콘솔로 딥링크 연결


 패널에서 시계열을 선택하면 **CloudWatch 콘솔에서 보기** 링크가 있는 컨텍스트 메뉴가 표시됩니다. 이 링크를 선택하면 CloudWatch 콘솔로 이동하는 새 탭이 열리고 해당 쿼리에 대한 모든 지표가 표시됩니다. 현재 CloudWatch 콘솔에 로그인하지 않은 경우 링크를 누르면 로그인 페이지로 이동합니다. 제공된 링크는 모든에 유효하지 AWS 계정 만 Grafana에서 선택한 데이터 소스에 해당하는에 로그인 AWS 계정 한 경우에만 올바른 지표를 표시합니다.

 이 기능은 지표 수학 표현식을 기반으로 하는 지표에서 사용할 수 없습니다.

# 지표 쿼리 옵션을 사용하여 CloudWatch Metrics Insights 데이터 쿼리


**참고**  
Amazon CloudWatch Metrics Insights는 평가판으로 제공됩니다. CloudWatch Metrics Insights 기능은 모든 AWS 계정에서 이용 가능합니다. 기능은 변경될 수 있습니다.

 **지표 쿼리 편집기**에서 `metric query` 모드를 선택하여 CloudWatch Metrics Insights 데이터를 쿼리할 수 있습니다.

 CloudWatch Metrics Insights는 대규모 지표를 쿼리하는 데 사용할 수 있는 강력한 고성능 SQL 쿼리 엔진입니다. 빠르고 유연한 SQL 기반 쿼리 엔진으로, 모든 CloudWatch 지표 내 추세와 패턴을 실시간으로 식별하는 데 사용할 수 있습니다. SQL 언어를 사용합니다. Metrics Insights 쿼리 구문에 대한 자세한 내용은 [쿼리 구문 및 키워드](#metrics-insights-syntax-keywords) 섹션을 참조하세요.

## 쿼리 구문 및 키워드


CloudWatch Metrics Insights는 SQL 언어를 사용합니다. 다음 예제에서는 쿼리 구문을 보여줍니다.

```
SELECT FUNCTION(metricName)
FROM namespace | [ SCHEMA(namespace[, labelKey [, ...] ]) ]
     [ WHERE labelKey OPERATOR labelValue [AND|OR|([...])*] [, ...] ]
[ GROUP BY labelKey [, ...]]
[ ORDER BY FUNCTION() [DESC | ASC] ]
[ LIMIT number]
```

 키워드는 대소문자를 구분하지 않지만 식별자는 대소문자를 구분합니다. 식별자에는 지표 이름, 네임스페이스 및 차원이 포함됩니다.

 다음 표에서는 가능한 키워드 및 해당 설명을 제공합니다.


|  키워드  |  설명  | 
| --- | --- | 
|  FUNCTION  |  필수 사항입니다. 사용할 집계 함수를 지정하고 쿼리할 지표의 이름도 지정합니다. 유효한 값은 AVG, COUNT, MAX, MIN 및 SUM입니다. | 
|  MetricName   |  필수 사항입니다. 예를 들어 CPUUtilization입니다. | 
|  FROM  |  필수 사항입니다. 지표의 소스를 지정합니다. 쿼리할 지표를 포함하는 지표 네임스페이스 또는 SCHEMA 테이블 함수를 지정할 수 있습니다. 일부 네임스페이스 예제로 AWS/EC2 및 AWS/Lambda가 있습니다. | 
|  SCHEMA  |  (선택 사항) 쿼리 결과를 필터링하여 정확히 일치하는 지표 또는 일치하지 않는 지표만 표시합니다. | 
|  WHERE  |  (선택 사항) 결과를 필터링하여 지정된 표현식과 일치하는 지표만 표시합니다. 예를 들어 WHERE InstanceType \$1= 'c3.4xlarge'입니다. | 
|  GROUP BY  |  (선택 사항) 쿼리 결과를 여러 시계열로 그룹화합니다. 예를 들어 GROUP BY ServiceName입니다. | 
|  ORDER BY  |  (선택 사항) 반환할 시계열의 순서를 지정합니다. 옵션으로 ASC 및 DESC가 있습니다. | 
|  LIMIT  |  (선택 사항) 반환할 시계열 수를 제한합니다. | 

다음은 몇 가지 예시입니다.
+ 

  ```
  SELECT AVG(CPUUtilization) FROM "AWS/EC2" 
  ```

   `AWS/EC2` 네임스페이스의 모든 `CPUUtilization` 지표를 일치시키고(이때 차원 무시) 집계된 단일 시계열을 반환합니다.
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2")
  ```

   `AWS/EC2` 네임스페이스에서 정의된 차원이 없는 `CPUUtilization` 지표만 일치시킵니다.
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId)
  ```

   CloudWatch에 보고된 `CPUUtilization` 지표를 일치시킵니다(이때 정확히 하나의 차원 `InstanceId` 포함).
+ 

  ```
  SELECT SUM(RequestCount) FROM SCHEMA("AWS/ApplicationELB", LoadBalancer,
  AvailabilityZone)
  ```

   `AWS/ApplicationELB`에서 CloudWatch에 보고된 `RequestCount` 지표만 일치시킵니다(이때 정확히 두 개의 `LoadBalancer` 및 `AvailabilityZone` 차원 포함).

 레이블 값은 작은따옴표로 묶어야 합니다.

### 이스케이프 문자


쿼리에서 레이블 값은 항상 작은따옴표로 묶어야 합니다.   예를 들어 `SELECT MAX(CPUUtilization) FROM "AWS/EC2" WHERE AutoScalingGroupName = 'my-production-fleet'`입니다.

 문자, 숫자 및 밑줄(`_`) 이외의 문자가 포함된 지표 네임스페이스, 지표 이름 및 레이블 키는 큰따옴표로 묶어야 합니다. 예를 들어 `SELECT MAX("My.Metric")`입니다. 이 중 하나에 큰따옴표 자체(예: `Bytes"Input"`)가 포함된 경우 `SELECT AVG("Bytes\"Input\"")`에서와 같이 해당 큰따옴표를 백슬래시로 이스케이프 처리해야 합니다. 지표 네임스페이스, 지표 이름 또는 레이블 키에 Metrics Insights의 예약된 키워드 단어가 포함되어 있는 경우 이러한 단어도 큰따옴표로 묶어야 합니다. 예를 들어 `LIMIT`으로 이름 붙인 지표가 있는 경우 `SELECT AVG("LIMIT")`를 사용합니다. 예약어가 포함되어 있지 않더라도 네임스페이스, 지표 이름 또는 레이블을 큰따옴표로 묶는 것도 유효합니다.

## 빌더 모드 및 코드 모드


`Builder` 모드 또는 `Code` 모드에서 쿼리를 생성할 수 있습니다.

**`Builder` 모드에서 쿼리를 생성하는 방법**

1. 이전 테이블의 정보를 사용하여 지표 네임스페이스, 지표 이름, 필터, 그룹 및 정렬 옵션을 찾아 선택하세요.

1. 이러한 각 옵션에 대해 가능한 옵션 목록 중에서 선택하세요.

**`Code` 모드에서 쿼리를 생성하는 방법**

1. 코드 편집기에 쿼리를 작성하세요.

1. 쿼리를 실행하려면 코드 편집기에서 **쿼리 실행**을 선택하세요.

`builder` 모드에서 쿼리를 생성하는 방법
+ 위 테이블의 정보를 사용하여 지표 네임스페이스, 지표 이름, 필터, 그룹 및 정렬 옵션을 찾아 선택하세요.
+ 이러한 각 옵션에 대해 가능한 옵션 목록 중에서 선택하세요.

Grafana는 선택 사항에 따라 SQL 쿼리를 자동으로 작성합니다.

 `code` 모드에서 쿼리를 생성하는 방법
+ 코드 편집기에 쿼리를 작성하세요.
+ 쿼리를 실행하려면 코드 편집기에서 **쿼리 실행**을 선택하세요.

코드 편집기에는 키워드, 집계, 네임스페이스, 지표, 레이블 및 레이블 값에 대한 제안을 제공하는 기본 제공 자동 완성 기능이 있습니다. 제안은 공백, 쉼표 또는 달러 기호를 입력할 때 표시됩니다. `CTRL+Space` 키보드 조합을 사용할 수도 있습니다.

코드 편집기에서 쿼리를 자동으로 완료할 수 있습니다. 그러나 코드 편집기에서 템플릿 변수를 사용하면 자동 완성이 방해를 받을 수 있습니다.

## CloudWatch Metrics Insights 예제


**참고**  
CloudWatch Metrics Insights는 평가판이 공개되어 있습니다. 미리 보기는 모든 AWS 계정에 열려 있으며 액세스를 요청할 필요가 없습니다. 정식 출시를 발표하기 전에 기능이 추가되거나 변경될 수 있습니다.

이 섹션에는 쿼리 편집기에서 직접 복사 및 사용하거나 복사 및 수정할 수 있는 유용한 CloudWatch Metrics Insights 쿼리의 예제가 포함되어 있습니다. 이러한 예제 중 일부는 콘솔에서 이미 사용할 수 있으며 **지표(Metrics)** 보기의 **쿼리 추가(Add query)**를 선택하여 액세스할 수 있습니다.

### EC2 예제


 인스턴스당 CPU 사용률 지표 보기

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
```

전체 플릿에서 평균 CPU 사용률 보기

```
SELECT AVG(CPUUtilization)
FROM SCHEMA("AWS/EC2", InstanceId)
```

 평균 CPU 사용률이 가장 높은 인스턴스 10개 보기 

```
SELECT MAX(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
LIMIT 10
```

CPU 사용률이 가장 높은 인스턴스 10개 보기(최댓값을 기준으로 내림차순 정렬)

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
ORDER BY MAX() DESC
LIMIT 10
```

이 경우 CloudWatch 에이전트가 애플리케이션당 CPU 사용률 지표를 수집합니다. 이 쿼리는 특정 애플리케이션 이름에 대해 해당 지표의 평균을 필터링합니다.

```
SELECT AVG(CPUUtilization)
FROM "AWS/CWAgent"
WHERE ApplicationName = 'eCommerce'
SELECT AVG(ConcurrentExecutions)
FROM "AWS/Lambda"
```

상위 10개 Lambda 함수의 평균 실행 시간 보기(최댓값을 기준으로 내림차순 정렬)

```
SELECT AVG(Duration)
FROM "AWS/Lambda"
GROUP BY FunctionName
ORDER BY MAX() DESC
LIMIT 10
```

Lambda 실행 시간의 평균, 최솟값 및 최댓값 보기

```
SELECT MAX(Duration)
FROM "AWS/Lambda"
```

### Application Load Balancer 예제


 **LoadBalancer** 및 **AvailabilityZone** 차원을 포함하는 지표 보기

```
SELECT SUM(RequestCount)
FROM SCHEMA("AWS/ApplicationELB", LoadBalancer, AvailabilityZone)
```

활성 동시 TCP 연결 수를 포함하는 지표 보기

```
SELECT AVG(ActiveConnectionCount)
FROM "AWS/ApplicationELB"
```

### Amazon EBS 예제


 볼륨당 상위 10개 평균 쓰기 바이트 보기(내림차순 정렬)

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
GROUP BY VolumeId
ORDER BY MAX() DESC
LIMIT 10
```

평균 Amazon EBS 볼륨 쓰기 시간 보기

```
SELECT AVG(VolumeTotalWriteTime)
FROM "AWS/EBS"
```

평균 Amazon EBS 볼륨 유휴 시간 보기

```
SELECT AVG(VolumeIdleTime)
FROM "AWS/EBS"
View average burst balance per volume
SELECT AVG(BurstBalance)
FROM "AWS/EBS"
GROUP BY VolumeId
View average read bytes across Amazon EBS volumes
SELECT AVG(VolumeReadBytes)
FROM "AWS/EBS"
```

Amazon EBS 볼륨에서 평균 쓰기 바이트 보기

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
```

### Amazon Simple Storage Service 예제


 버킷 이름별 평균 지연 시간 그룹 보기

```
SELECT AVG(TotalRequestLatency)
FROM "AWS/S3"
GROUP BY BucketName
```

모든 Amazon S3 버킷에서 버킷당 평균 객체 수 보기

```
SELECT AVG(NumberOfObjects)
FROM "AWS/S3"
GROUP BY BucketName
```

### Amazon Simple Notification Service 예제


Amazon-simple-notificaation-service-examples 

```
SELECT AVG(NumberOfMessagesPublished)
FROM "AWS/SNS"
```

각 주제 이름에 대해 실패한 평균 메시지 수 보기

```
SELECT AVG(NumberOfNotificationsFailed)
FROM "AWS/SNS"
GROUP BY TopicName
```

### AWS API 사용 예제


계정의 호출 수를 기준으로 상위 20 AWS APIs 보기 

```
SELECT COUNT(CallCount)
FROM "AWS/Usage"
WHERE "Type" = 'API'
GROUP BY "Service", "Resource"
ORDER BY SUM() DESC
LIMIT 20
```

## CloudWatch Metrics Insights 제한


CloudWatch Metrics Insights에는 현재 다음과 같은 제한이 있습니다.
+ 가장 최근 3시간의 데이터만 쿼리할 수 있습니다.
+ 단일 쿼리는 10,000개 이하의 지표를 처리할 수 있습니다. 즉, `SELECT`, `FROM`, `WHERE` 절이 10,000개가 넘는 지표와 일치하면 발견된 해당 지표 중 처음 10,000개만 쿼리에 의해 처리됩니다.
+ 단일 쿼리는 500개 이하의 시계열을 반환할 수 있습니다. 즉, 쿼리에서 500개가 넘는 지표를 반환하는 경우 일부 지표만 쿼리 결과에 반환됩니다. `ORDER BY` 절을 사용하면 처리되는 모든 지표가 정렬되고 `ORDER BY` 절에 따라 내림차순 또는 오름차순으로 500개가 반환됩니다. `ORDER BY` 절을 포함하지 않는 경우 반환되는 500개의 일치하는 지표을 제어할 수 없습니다.
+ 각 `GetMetricData` 작업에는 쿼리가 하나만 있을 수 있지만 대시보드에는 각 쿼리가 포함된 위젯이 여러 개 있을 수 있습니다.

# Amazon CloudWatch Logs 쿼리 편집기 사용


 CloudWatch Logs를 쿼리하려면 쿼리할 리전과 최대 20개의 로그 그룹을 선택하세요. 기본 입력 영역을 사용하여 쿼리를 작성합니다. 자세한 내용은 [CloudWatch Logs Insights 쿼리 구문](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)을 참조하세요.

 CloudWatch Logs Insights의 `stats` 명령을 사용하여 시계열 데이터를 반환하는 쿼리를 작성할 수도 있습니다. 탐색에서 `stats` 쿼리를 수행할 때 지표 탐색 모드인지 확인해야 합니다.

 쿼리 입력 필드 오른쪽에는 쿼리와 함께 CloudWatch Logs Insights 콘솔을 여는 CloudWatch Logs Insights 링크가 있습니다. 필요한 경우 거기에서 계속 탐색할 수 있습니다.

## 템플릿 변수 사용


 다른 여러 데이터 소스와 마찬가지로 CloudWatch 데이터 소스는 쿼리에서 템플릿 변수 사용을 지원합니다. 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 단원을 참조하십시오.

## Grafana 패널에서 CloudWatch Logs 콘솔로 딥링크 연결


 CloudWatch Logs Insights 콘솔에서 쿼리를 보려면 쿼리 편집기 옆의 **CloudWatch Logs Insights** 버튼을 선택하세요. 현재 CloudWatch 콘솔에 로그인하지 않은 경우 링크를 누르면 로그인 페이지로 이동합니다. 제공된 링크는 모든에 유효하지 AWS 계정 만 Grafana에서 선택한 데이터 소스에 해당하는에 로그인 AWS 계정 한 경우에만 올바른 지표를 표시합니다.

## 알림


 CloudWatch Logs 쿼리는 예를 들어 `stats` 명령을 사용하여 숫자 데이터를 반환할 수 있으므로 알림이 지원됩니다. 자세한 내용은 [Grafana 알림](alerts-overview.md) 단원을 참조하십시오.

# 큐레이션된 대시보드


 업데이트된 CloudWatch 데이터 소스에는 가장 인기 있는 5가지 AWS 서비스에 대한 사전 구성된 대시보드가 함께 제공됩니다.
+  Amazon EC2 
+  Amazon Elastic Block Store 
+  AWS Lambda 
+  Amazon CloudWatch Logs 
+  Amazon Relational Database Service 

 사전 구성된 대시보드를 가져오려면 CloudWatch 데이터 소스의 구성 페이지로 이동하여 **대시보드** 탭을 선택하세요. 사용하려는 대시보드에 대해 **가져오기**를 선택하세요. 대시보드를 사용자 지정하려면 대시보드를 다른 이름으로 저장하는 것이 좋습니다. 그렇지 않으면 새 버전의 대시보드가 릴리스될 때 대시보드를 덮어씁니다.

# 템플릿 기반 쿼리


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 하드코딩 세부 정보 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 기능과 다양한 유형의 템플릿 변수에 대한 소개는 [템플릿](templates-and-variables.md#templates) 섹션을 참조하세요.

## 쿼리 변수


 CloudWatch 데이터 소스는 **변수** 편집 보기의 **쿼리** 필드에 지정할 수 있는 다음과 같은 쿼리를 제공합니다. 이를 사용하여 변수의 옵션 목록을 `region`, `namespaces`, `metric names`, `dimension keys/values`와 같은 항목으로 채울 수 있습니다.

 `region` 대신 쿼리의 데이터 소스에 구성된 기본 리전을 사용하도록 `default`를 지정할 수 있습니다.


|  이름  |  설명  | 
| --- | --- | 
|  regions()  |  모든 AWS 리전 목록을 반환합니다. | 
|  namespaces()  |  CloudWatch에서 지원하는 네임스페이스 목록을 반환합니다. | 
|  metrics(namespace, [region])  |  네임스페이스의 지표 목록을 반환합니다. (리전을 지정하거나 사용자 지정 지표에 대해 "default"를 사용합니다.)  | 
|  dimension\$1keys(namespace)  |  네임스페이스의 차원 키 목록을 반환합니다. | 
|  dimension\$1values(region, namespace, metric, dimension\$1key, [filters])  |  지정된 region, namespace, metric 또는 dimension\$1key와 일치하는 차원 값 목록을 반환합니다. 또는 filters 차원을 사용하여 더 구체적인 결과를 얻을 수 있습니다. | 
|  ebs\$1volume\$1ids(region, instance\$1id)  |  지정된 region, instance\$1id와 일치하는 볼륨 ID 목록을 반환합니다. | 
|  ec2\$1instance\$1attribute(region, attribute\$1name, filters)  |  지정된 region, attribute\$1name, filters와 일치하는 속성 목록을 반환합니다. | 
|  resource\$1arns(region, resource\$1type, tags)  |  지정된 region, resource\$1type 및 tags와 일치하는 ARN 목록을 반환합니다. | 
|  statistics()  |  모든 표준 통계 목록을 반환합니다. | 

 CloudWatch에서 제공하는 지표에 대한 자세한 내용은 [AWS CloudWatch 지표를 게시하는 서비스](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)를 참조하세요.

### 템플릿 기반 쿼리 예제


 다음 표에는 개별 AWS 서비스에 대한 리소스 목록을 반환하는 차원 쿼리의 예가 나와 있습니다.


|  Query  |  서비스  | 
| --- | --- | 
|  dimension\$1values(us-east-1,AWS/ELB,RequestCount,LoadBalancerName)  |  Elastic Load Balancing  | 
|  dimension\$1values(us-east-1,AWS/ElastiCache,CPUUtilization,CacheClusterId)  |  Amazon ElastiCache  | 
|  dimension\$1values(us-east-1,AWS/Redshift,CPUUtilization,ClusterIdentifier)  |  Amazon Redshift  | 
|  dimension\$1values(us-east-1,AWS/RDS,CPUUtilization,DBInstanceIdentifier)  |  Amazon RDS  | 
|  dimension\$1values(us-east-1,AWS/S3,BucketSizeBytes,BucketName)  |  Amazon Simple Storage Service(Amazon S3)  | 
|  dimension\$1values(us-east-1,CWAgent,disk\$1used\$1percent,device,\$1"InstanceId":"\$1instance\$1id"\$1)  |  CloudWatch 에이전트  | 
|  resource\$1arns(eu-west-1,elasticloadbalancing:loadbalancer,\$1"elasticbeanstalk:environment-name":["myApp-dev","myApp-prod"]\$1)  |  Elastic Load Balancing  | 
|  resource\$1arns(eu-west-1,ec2:instance,\$1"elasticbeanstalk:environment-name":["myApp-dev","myApp-prod"]\$1)  |  Amazon EC2  | 

# ec2\$1instance\$1attribute 예제 사용


## JSON 필터


 `ec2_instance_attribute` 쿼리는 JSON 형식으로 `filters`를 사용합니다. `ec2:DescribeInstances`의 사전 정의된 필터를 지정할 수 있습니다. 실제 필터링은 Grafana가 AWS아닌에서 이루어집니다.

 다음 코드 예제에서는 필드 구문을 보여줍니다.

```
{ filter_name1: [ filter_value1 ], filter_name2: [ filter_value2 ] }
```

 다음 예제에서는 `ec2_instance_attribute()` 쿼리를 보여줍니다.

```
ec2_instance_attribute(us - east - 1, InstanceId, { 'tag:Environment': ['production'] });
```

## 속성 선택


 인스턴스당 하나의 속성만 반환할 수 있습니다. 모든 플랫 속성을 선택할 수 있습니다(즉, 속성에 단일 값이 있고 객체나 배열이 아닌 경우). 다음 플랫 속성을 사용할 수 있습니다.
+  `AmiLaunchIndex` 
+  `Architecture` 
+  `ClientToken` 
+  `EbsOptimized` 
+  `EnaSupport` 
+  `Hypervisor` 
+  `IamInstanceProfile` 
+  `ImageId` 
+  `InstanceId` 
+  `InstanceLifecycle` 
+  `InstanceType` 
+  `KernelId` 
+  `KeyName` 
+  `LaunchTime` 
+  `Platform` 
+  `PrivateDnsName` 
+  `PrivateIpAddress` 
+  `PublicDnsName` 
+  `PublicIpAddress` 
+  `RamdiskId` 
+  `RootDeviceName` 
+  `RootDeviceType` 
+  `SourceDestCheck` 
+  `SpotInstanceRequestId` 
+  `SriovNetSupport` 
+  `SubnetId` 
+  `VirtualizationType` 
+  `VpcId` 

 태그 이름에 `Tags`를 접두사를 지정하여 태그를 선택할 수 있습니다.

 다음 예제에서는 `ec2_instance_attribute()` 쿼리를 보여줍니다.

```
ec2_instance_attribute(us - east - 1, Tags.Name, { 'tag:Team': ['sysops'] });
```

# JSON 형식 템플릿 변수 사용


 일부 쿼리는 JSON 형식의 필터를 수락하며, Grafana는 JSON으로의 템플릿 변수 변환을 지원합니다.

 `env = 'production', 'staging'`인 경우 다음 쿼리는 `Environment` 태그가 `production` 또는 `staging`인 EC2 인스턴스의 ARN을 반환합니다.

```
resource_arns(us-east-1, ec2:instance, {"Environment":${env:json}})
```

# 가격 책정


 Grafana에 대한 Amazon CloudWatch 데이터 소스에서는 `ListMetrics` 및 `GetMetricData` CloudWatch API 직접 호출을 사용하여 지표를 나열하고 검색합니다. CloudWatch Logs 요금은 CloudWatch Logs Insights 쿼리를 통해 수집, 아카이브 및 분석되는 데이터의 양에 기반합니다. 자세한 내용은 [Amazon CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing)을 참조하세요.

 쿼리 편집기에서 차원을 선택할 때마다 Grafana는 `ListMetrics` 요청을 실행합니다. 쿼리 편집기에서 쿼리를 변경할 때마다 GetMetricData에 대한 하나의 새 요청이 실행됩니다.

 데이터 샘플을 검색하기 위한 API 요청에서는 `GetMetricData` 작업을 사용합니다. 이 작업은 CloudWatch 지표 수학을 보다 효과적으로 지원합니다. 또한 와일드카드 문자를 사용하거나 **정확히 일치** 옵션을 끌 때 검색 표현식의 자동 생성도 지원합니다. `GetMetricData` 작업에서는 요금이 발생합니다. 자세한 내용은 [Amazon CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing)을 참조하세요.

# Service Quotas


 AWS 는 AWS 계정의 리소스, 작업 및 항목에 대한 할당량 또는 제한을 정의합니다. 대시보드의 쿼리 수와 대시보드에 액세스하는 사용자 수에 따라 다양한 CloudWatch 및 CloudWatch Logs 리소스의 사용 제한에 도달할 수 있습니다. 할당량은 계정 및 AWS 리전별로 정의됩니다. 여러 리전을 사용 중이거나 여러 계정에 대해 쿼리할 CloudWatch 데이터 소스를 두 개 이상 설정한 경우 제한에 도달한 각 계정 및 각 리전에 대해 할당량 증가를 요청해야 합니다.

 자세한 내용은 [CloudWatch 서비스 할당량](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)을 참조하세요.

# 교차 계정 관찰성


**주의**  
이 기능을 사용하려면 Grafana 워크스페이스가 버전 9 이상이어야 합니다.

CloudWatch 플러그인을 사용하면 여러 리전 계정에서 애플리케이션을 모니터링하고 문제를 해결할 수 있습니다. 교차 계정 관찰성을 사용하면 계정 경계에 대한 걱정을 하지 않고도 지표 및 로그를 원활하게 검색, 시각화 및 분석할 수 있습니다.

교차 계정 관찰성을 활성화하려면 먼저 CloudWatch에서 이 기능을 활성화한 다음, 플러그인을 실행하는 역할/사용자에 적절한 IAM 작업을 추가합니다. Amazon Managed Grafana 워크스페이스가 VPC 내에서 실행 중인 경우 인터넷 액세스를 지원하는 NAT 게이트웨이도 있어야 합니다.
+ 기능을 활성화하는 방법을 알아보려면 *Amazon CloudWatch 사용 설명서*의 [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)를 참조하세요.
+ 다음 작업은 플러그인을 실행하는 역할/사용자에 대해 추가할 적절한 IAM 작업입니다.

  ```
  {
  "Sid":  "AllowReadingAcrossAccounts",
  "Effect":  "Allow",
  "Action": [
    "oam:ListSinks",
    "oam:ListAttachedLinks"
  ],
  "Resource":  "*"
  }
  ```
+ CloudWatch 데이터 소스에 대한 교차 계정 관찰성은 Amazon CloudWatch Observability Access Manager를 사용합니다. Observability Access Manager는 VPC 엔드포인트를 지원하지 않습니다. Amazon Managed Grafana 워크스페이스가 VPC 내에서 실행 중인 경우 워크스페이스가 인터넷에서 API를 직접 호출하도록 허용하는 NAT 게이트웨이도 있어야 합니다.

**참고**  
액세스하려는 계정의 CloudWatch 데이터를 읽을 수 있는 IAM 권한도 있어야 합니다.

# Amazon OpenSearch Service 데이터 소스에 연결
Amazon OpenSearch Service

**참고**  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

Amazon Managed Grafana를 사용하면 Grafana 워크스페이스 콘솔의 데이터 소스 구성 옵션을 사용하여 Amazon OpenSearch Service를 AWS 데이터 소스로 추가할 수 있습니다. 이 데이터 소스는 OpenSearch 클러스터와 레거시 Elasticsearch 클러스터를 실행하는 OpenSearch Service 도메인을 지원합니다.

 AWS 데이터 소스 구성 옵션은 기존 OpenSearch Service 계정을 검색하여 OpenSearch Service를 데이터 소스로 추가하는 작업을 간소화하고 OpenSearch에 액세스하는 데 필요한 인증 자격 증명의 구성을 관리합니다. 이 방법을 사용하여 인증을 설정하고 OpenSearch Service를 데이터 소스로 추가하거나 자체 관리형 Grafana 서버에서와 동일한 방법을 사용하여 데이터 소스와 필요한 인증 자격 증명을 수동으로 설정할 수 있습니다.

OpenSearch Service 데이터 소스는 파이프 처리 언어(PPL)를 지원합니다. PPL에 대한 자세한 내용은 [Querying Amazon OpenSearch Service data using Piped Processing Language](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ppl-support.html)를 참조하세요.

OpenSearch Service 데이터 소스를 사용해 여러 유형의 단순하거나 복잡한 OpenSearch 쿼리를 수행하여 OpenSearch에 저장된 로그 또는 지표를 시각화할 수 있습니다. OpenSearch에 저장된 로그 이벤트로 그래프에 주석을 작성할 수도 있습니다.

**Topics**
+ [

# AWS 데이터 소스 구성을 사용하여 OpenSearch Service를 데이터 소스로 추가
](ES-adding-AWS-config.md)
+ [

# 수동으로 Amazon OpenSearch Service를 데이터 소스로 추가
](ES-adding-the-data-source.md)
+ [

## OpenSearch Service 설정
](#ES-settings)
+ [

# Amazon OpenSearch Service 데이터 소스 사용
](ES-use-datasource.md)
+ [

# Amazon OpenSearch Service Serverless
](datasources-opensearch-serverless.md)
+ [

# 추적 지원
](datasources-opensearch-traces.md)

# AWS 데이터 소스 구성을 사용하여 OpenSearch Service를 데이터 소스로 추가


 AWS 데이터 소스 구성을 사용하려면 먼저 Amazon Managed Grafana 콘솔을 사용하여 계정 또는 전체 조직 단위에서 OpenSearch Service 리소스를 읽는 데 필요한 IAM 정책을 워크스페이스에 부여하는 서비스 관리형 IAM 역할을 활성화합니다. 그런 다음, Amazon Managed Grafana 워크스페이스 콘솔을 사용하여 OpenSearch Service를 데이터 소스로 추가합니다.

**AWS 데이터 소스 구성을 사용하여 OpenSearch Service를 데이터 소스로 추가하려면**

1. [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)에서 Amazon Managed Grafana 콘솔을 엽니다.

1. 페이지 왼쪽 상단에서 메뉴 아이콘을 선택한 다음, **모든 워크스페이스**를 선택합니다.

1. 워크스페이스 이름을 선택하세요.

1. 이 워크스페이스를 생성할 때이 워크스페이스에 서비스 관리형 권한을 사용하도록 선택하지 않은 경우 Grafana 워크스페이스 콘솔에서 AWS 데이터 소스 구성 옵션을 사용할 수 있도록 적절한 IAM 역할 및 정책이 활성화되도록 고객 관리형 권한을 사용하여 서비스 관리형 권한을 사용하는 것으로 변경합니다. 이를 수행하려면 **IAM 역할** 옆의 편집 아이콘을 선택하고 **서비스 관리형**, **변경 사항 저장**을 선택하세요. 자세한 내용은 [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md) 단원을 참조하십시오.

1. **데이터 소스** 탭을 선택하세요. 그런 다음, **Amazon OpenSearch Service**의 확인란을 선택하고 **작업**, **서비스 관리형 정책 활성화**를 선택하세요.

1. **데이터 소스** 탭을 다시 선택한 다음, **Amazon OpenSearch Service** 행에서 **Grafana에서 구성**을 선택하세요.

1. 필요한 경우 IAM Identity Center를 사용하여 Grafana 워크스페이스 콘솔에 로그인합니다.

1. Grafana 워크스페이스 콘솔의 왼쪽 탐색 모음에서 AWS 아이콘을 선택한 다음 **AWS 서비스**, **Amazon OpenSearch Service**를 선택합니다.

1. Amazon Managed Grafana에서 OpenSearch Service 리소스를 찾기 위해 검색할 리전을 선택한 다음, 추가하려는 계정과 OpenSearch Service 도메인을 선택하고 인덱스 설정을 구성한 후 **데이터 소스 추가**를 선택하세요.

# 수동으로 Amazon OpenSearch Service를 데이터 소스로 추가


**수동으로 Amazon OpenSearch Service 데이터 소스를 추가하는 방법**

1.  Grafana 콘솔 사이드 메뉴에서 **AWS** 아이콘을 선택한 다음, **데이터 소스**를 선택하세요.

1. **Amazon OpenSearch Service** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에서 **OpenSearch**를 입력하기 시작하면 해당 항목을 찾는 데 도움이 됩니다.

1. 데이터를 검색하려는 **리전**을 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.

## OpenSearch Service 설정



|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  Url  |  Amazon OpenSearch Service 도메인의 엔드포인트. 엔드포인트는 https://search-my-domain.us-east-1.es.amazonaws.com 형식을 사용합니다. | 
|  Access  |  서버(기본값) = Grafana 백엔드/서버에서 URL에 액세스할 수 있어야 합니다. 브라우저 = 브라우저에서 URL에 액세스할 수 있어야 합니다. | 

 액세스 모드는 데이터 소스에 대한 요청을 처리하는 방법을 제어합니다. 다른 내용이 없는 경우 서버가 선호되는 방법이어야 합니다.

### 서버 액세스 모드(기본값)


 모든 요청은 브라우저에서 Grafana로 이루어집니다. 그러면 요청을 데이터 소스로 전달하여 가능한 교차 오리진 리소스 공유(CORS) 요구 사항을 우회합니다. 이 액세스 모드를 선택하면 Grafana 백엔드 또는 서버에서 URL에 액세스할 수 있어야 합니다.

### 브라우저(직접) 액세스


Amazon Managed Grafana는 브라우저 직접 액세스를 지원하지 않습니다.

### 인덱스 설정


 여기서 `time field`의 기본값을 지정하고 OpenSearch 인덱스의 이름을 지정할 수 있습니다. 인덱스 이름 또는 와일드카드 문자에 대한 시간 패턴을 사용할 수 있습니다.

### OpenSearch/Elasticsearch 버전


버전 드롭다운 메뉴에서 OpenSearch 또는 레거시 Elasticsearch 버전을 지정합니다. 각 버전에 대해 쿼리가 구성되는 방식에 차이가 있기 때문에 버전이 중요합니다. 현재 Grafana에서는 OpenSearch 1.0.x를 지원합니다. 지원되는 Elasticsearch 버전은 `2.0+`, `5.0+`, `5.6+`, `6.0+`, `7.0+`입니다. `5.6+` 값은 버전 5.6 이상, 6.0 미만을 의미합니다. `6.0+` 값은 버전 6.0 이상, 7.0 미만을 의미합니다. 마지막으로 `7.0+`는 버전 7.0 이상, 8.0 미만을 의미합니다.

### 최소 시간 간격


자동 그룹화 기준 시간 간격의 하한. 데이터가 1분마다 기록되는 경우 `1m`과 같이 쓰기 빈도로 설정하는 것이 좋습니다. 이 옵션은 대시보드 패널의 데이터 소스 옵션에서 재정의/구성할 수도 있습니다. 이 값은 숫자 및 유효한 시간 식별자의 순서로 형식이 지정되어야 **합니다**(예: `1m`(1분) 또는 `30s`(30초)). 다음 시간 식별자가 지원됩니다.


|  식별자  |  설명  | 
| --- | --- | 
|  y  |  연도  | 
|  M  |  월  | 
|  w  |  주  | 
|  d  |  일  | 
|  h  |  시간  | 
|  m  |  분  | 
|  s  |  초  | 
|  ms  |  밀리초  | 

### 로그


[탐색](explore.md)에서 로그를 시각화할 때 로그 메시지 및 로그 수준에 사용할 필드를 결정하는 데이터 소스 설정 페이지에서 선택적으로 두 개의 파라미터 `Message field name` 및 `Level field name`을 구성할 수 있습니다.

 예를 들어 로그를 OpenSearch Service로 전송하기 위해 Filebeat의 기본 설정을 사용하는 경우 다음 구성이 작동해야 합니다.
+  **메시지 필드 이름:** 메시지 
+  **수준 필드 이름:** fields.level 

### 데이터 링크


 데이터 링크는 지정된 필드에서 링크를 생성하고 해당 링크는 탐색의 로그 보기에서 액세스할 수 있습니다.

 각 데이터 링크 구성은 다음으로 구성됩니다.
+ **필드** - 데이터 링크에서 사용하는 필드의 이름.
+ **URL/쿼리 ** - 링크가 외부인 경우 전체 링크 URL을 입력합니다. 링크가 내부 링크인 경우 이 입력은 대상 데이터 소스에 대한 쿼리 역할을 합니다. 두 경우 모두 필드의 값을 `${__value.raw }` 매크로로 보간할 수 있습니다.
+ **내부 링크** - 링크가 내부 또는 외부 링크인 경우 선택합니다. 내부 링크인 경우 데이터 소스 선택기를 사용하여 대상 데이터 소스를 선택할 수 있습니다. 추적 데이터 소스만 지원됩니다.

# Amazon OpenSearch Service 데이터 소스 사용


## 지표 쿼리 편집기


OpenSearch 쿼리 편집기를 사용하면 여러 지표를 선택하고 여러 용어 또는 필터를 기준으로 그룹화할 수 있습니다. 오른쪽에 있는 더하기 및 빼기 아이콘을 사용하여 지표 또는 그룹화 기준 절을 추가/제거합니다. 일부 지표 및 그룹화 기준 절에 옵션이 있습니다. 옵션 텍스트를 선택하여 보려는 행을 확장하고 지표 또는 그룹화 기준 옵션을 편집합니다.

## Piped Processing Language(PPL) 사용


Amazon OpenSearch Service 데이터 소스는 Piped Processing Language(PPL)를 지원하므로 OpenSearch에 대해 보다 간단하면서도 더 강력한 쿼리 및 시각화 기능을 사용할 수 있습니다. PPL을 사용하면 긴 OpenSearch Domain Specific Language(DSL) 문을 작성하거나 JSON 객체를 사용하여 쿼리를 작성하지 않고도 고객이 데이터를 탐색하고 찾을 수 있습니다. PPL을 사용하면 UNIX 파이프와 유사한 파이프로 구분된 명령 세트로 쿼리를 작성할 수 있습니다.

다음 샘플 DSL 쿼리를 예제로 사용합니다.

```
GET opensearch_sample_data_logs/_search{"from":0,"size":0,"timeout":"1m","query":{"bool":{"should":[{"term":{"response.keyword":{"value":"404","boost":1}}},{"term":{"response.keyword":{"value":"503","boost":1}}}],"adjust_pure_negative":true,"boost":1}},"sort":[{"_doc":{"order":"asc"}}],"aggregations":{"composite_buckets":{"composite":{"size":1000,"sources":[{"host":{"terms":{"field":"host.keyword","missing_bucket":true,"order":"asc"}}},{"response":{"terms":{"field":"response.keyword","missing_bucket":true,"order":"asc"}}}]},"aggregations":{"request_count":{"value_count":{"field":"request.keyword"}},"sales_bucket_sort":{"bucket_sort":{"sort":[{"request_count":{"order":"desc"}}],"size":10}}}}}}>
```

앞의 DSL 쿼리는 간결하고 사람이 읽을 수 있는 다음 PPL 명령으로 대체할 수 있습니다.

```
source = opensearch_sample_data_logs | where response='404' or response='503' | stats count(request) as request_count by host, response | sort –request_count
```

PPL에 대한 자세한 내용은 [Querying Amazon OpenSearch Service data using Piped Processing Language](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ppl-support.html)를 참조하세요.

## 시리즈 이름 지정 및 별칭 패턴


 `Alias` 입력 필드를 사용하여 시계열의 이름을 제어할 수 있습니다.


|  패턴  |  설명  | 
| --- | --- | 
|  \$1\$1term fieldname\$1\$1  |  그룹화 기준이라는 용어의 값으로 대체됩니다. | 
|  \$1\$1metric\$1\$1  |  지표 이름으로 대체됩니다(예: 평균, 최소, 최대). | 
|  \$1\$1field\$1\$1  |  지표 필드 이름으로 대체되었습니다. | 

## 파이프라인 지표


일부 지표 집계를 파이프라인 집계라고 합니다. 예를 들어 *이동 평균* 및 *파생*이 있습니다. OpenSearch 파이프라인 지표에는 기반으로 사용할 다른 지표가 필요합니다. 지표 옆의 눈 아이콘을 사용하여 지표가 그래프에 표시되지 않도록 숨깁니다. 이는 파이프라인 지표에 사용할 쿼리에만 있는 지표에 유용합니다.

## 템플릿 지정


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

### 쿼리 변수


 OpenSearch Service 데이터 소스는 *쿼리* 변수의 *쿼리* 필드에 사용할 수 있는 두 가지 유형의 쿼리를 지원합니다. 쿼리는 사용자 지정 JSON 문자열을 사용하여 작성됩니다.


|  Query  |  설명  | 
| --- | --- | 
|  \$1"find": "fields", "type": "keyword"\$1  |  인덱스 유형이 keyword인 필드 이름 목록을 반환합니다. | 
|  \$1"find": "terms", "field": "@hostname", "size": 1000\$1  |  용어 집계를 사용하여 필드의 값 목록을 반환합니다. 쿼리는 현재 대시보드 시간 범위를 쿼리의 시간 범위로 사용합니다. | 
|  \$1"find": "terms", "field": "@hostname", "query": '<lucene query>'\$1  |  용어 집계 및 지정된 Lucene 쿼리 필터를 사용하여 필드의 값 목록을 반환합니다. 쿼리는 현재 대시보드 시간 범위를 쿼리의 시간 범위로 사용합니다. | 

용어 쿼리의 기본 크기 제한은 500입니다. 사용자 지정 제한을 설정하려면 쿼리에서 크기 속성을 설정하세요. 쿼리 내부에서 기타 변수를 사용할 수 있습니다. 다음 코드 예제에서는 `$host` 변수에 대한 쿼리 정의를 보여줍니다.

```
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
```

이전 예제에서는 쿼리 정의 내에 이름이 `$source`인 다른 변수를 사용합니다. 드롭다운 목록을 사용하여 `$source` 변수의 현재 값을 변경할 때마다 `$host` 변수 업데이트가 시작됩니다. 업데이트 후 `$host` 변수에는 이 경우 `@source` 문서 속성에서 필터링된 호스트 이름만 포함됩니다.

이러한 쿼리는 기본적으로 용어 순서로 반환됩니다(그런 다음, 모든 변수에 대해 사전순 또는 숫자로 정렬할 수 있음). 문서 수를 기준으로 정렬된 용어 목록(상위 N개의 값 목록)을 생성하려면 `doc_count`의 `orderBy` 속성을 추가합니다. 그러면 내림차순 정렬이 자동으로 선택됩니다. doc\$1count(하위 N개의 목록)와 함께 `asc`를 사용하려면 `order: "asc"`를 설정하면 되지만 문서 수에 대한 오류가 증가하므로 사용하지 않는 것이 좋습니다. 문서 수 순서로 용어를 유지하려면 변수의 **정렬** 드롭다운 목록을 **비활성화됨**으로 설정합니다. 또는 여전히 **사전순**을 사용하여 다시 정렬할 수도 있습니다.

```
{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}
```

### 쿼리에서 변수 사용


 두 가지 구문이 있습니다.
+  `$<varname>` 예: @hostname:\$1hostname 
+  `[[varname]]` 예: @hostname:[[hostname]] 

 왜 두 가지 방법이 있을까요? 첫 번째 구문은 읽고 쓰기가 더 쉽지만 단어 중간에 변수를 사용할 수는 없습니다. *다중 값* 또는 *모든 값 포함* 옵션이 활성화되면 Grafana는 레이블을 일반 텍스트에서 Lucene 호환 조건으로 변환합니다.

 이전 예제에서는 `$hostname` 변수를 사용하여 `@hostname` 속성을 기반으로 문서를 필터링하는 Lucene 쿼리를 사용했습니다. 또한 *용어* 그룹화 기준 필드 입력에서 변수를 사용했습니다. 이렇게 하면 변수를 사용하여 데이터 그룹화 방법을 빠르게 변경할 수 있습니다.

## Annotations


주석을 사용하면 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 대시보드 메뉴 또는 주석 보기를 사용하여 주석 쿼리를 추가합니다. Grafana는 OpenSearch 인덱스에서 주석 이벤트를 쿼리할 수 있습니다. 자세한 내용은 [Annotations](dashboard-annotations.md) 단원을 참조하십시오.


|  이름  |  설명  | 
| --- | --- | 
|  Query  |  검색 쿼리를 비워 두거나 Lucene 쿼리를 지정할 수 있습니다. | 
|  Time  |  시간 필드의 이름. 날짜 필드여야 합니다. | 
|  Time End  |  시간 종료 필드의 선택적 이름은 날짜 필드여야 합니다. 설정된 경우 주석은 시간과 종료 시간 사이의 리전으로 표시됩니다. | 
|  Text  |  이벤트 설명 필드. | 
|  Tags  |  이벤트 태그에 사용할 선택적 필드 이름(배열이 또는 CSV 문자열일 수 있음). | 

## 로그 쿼리


 OpenSearch에서 로그 데이터 쿼리 및 표시는 탐색에서 사용할 수 있습니다. 로그를 표시하려면 OpenSearch Service 데이터 소스를 선택한 다음, 선택적으로 Lucene 쿼리를 입력하세요. 자세한 내용은 [탐색](explore.md) 단원을 참조하십시오.

### 로그 쿼리


 결과가 반환되면 로그 패널에 로그 행 목록 및 막대 차트가 표시됩니다. 이때 막대 차트에서는 x축은 시간, y축은 빈도 또는 수를 표시합니다.

### 로그 메시지 필터링


 선택적으로 쿼리 필드에 Lucene 쿼리를 입력하여 로그 메시지를 필터링합니다. 예를 들어 기본 Filebeat 설정을 사용하면 오류 로그 메시지만 표시하기 위해 `fields.level:error`를 사용할 수 있습니다.

# Amazon OpenSearch Service Serverless
OpenSearch Service Serverless

**참고**  
OpenSearch Service Serverless 지원은 Grafana 버전 9.4 이상을 실행하는 Grafana 워크스페이스에서만 사용할 수 있습니다.

OpenSearch Service 데이터 소스를 사용하여 Amazon Managed Grafana에서 Amazon OpenSearch Service Serverless 데이터에 액세스할 수 있습니다. 데이터에 대한 액세스는 데이터 액세스 정책에 의해 제어됩니다. 다음 예제에서는 사용자가 특정 컬렉션 및 인덱스를 쿼리할 수 있도록 허용하는 정책을 보여줍니다. *`collection_name`*, *`index_name`* 및 *`principal_arn`*을 사용 사례에 올바른 값으로 바꾸어야 합니다.

```
[
  {
    "Rules": [
      {
        "Resource": ["collection/{collection_name}"],
        "Permission": ["aoss:DescribeCollectionItems"],
        "ResourceType": "collection"
      },
      {
        "Resource": ["index/{collection_name}/{index_name}"],
        "Permission": ["aoss:DescribeIndex", "aoss:ReadDocument"],
        "ResourceType": "index"
      }
    ],
    "Principal": ["principal_arn"],
    "Description": "read-access"
  }
]
```

# 추적 지원


OpenSearch 플러그인은 추적 범위의 타임라인을 보여주는 **추적 보기**에서 단일 추적 및 테이블 양식의 추적 목록을 볼 수 있도록 지원합니다.

**참고**  
OpenSearch 추적 쿼리는 Lucene 쿼리를 통해서만 사용할 수 있습니다.  
추적 지원은 버전 9.4 이상을 지원하는 Grafana 워크스페이스에서만 사용할 수 있습니다.

모든 추적을 보여주는 쿼리를 생성하려면 빈 쿼리에서 Lucene 쿼리 유형 `Traces`를 사용합니다. 필요한 경우 **테이블** 시각화 유형을 선택하세요.

테이블에서 추적 ID를 선택하면 추적 보기에서 해당 추적이 열립니다.

단일 추적을 보여주는 쿼리를 생성하려면 쿼리 `traceid: {traceId}`를 사용하고 필요한 경우 **추적** 시각화 유형을 선택하세요.

# AWS IoT SiteWise 데이터 소스에 연결
AWS IoT SiteWise

**참고**  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

 Amazon Managed Grafana를 사용하면 Grafana 워크스페이스 콘솔의 데이터 소스 구성 옵션을 사용하여를 AWS 데이터 소스 AWS IoT SiteWise 로 추가할 수 있습니다. 이 기능은 기존 AWS IoT SiteWise 계정을 검색하여를 데이터 소스 AWS IoT SiteWise 로 추가하는 작업을 간소화하고에 액세스하는 데 필요한 인증 자격 증명의 구성을 관리합니다 AWS IoT SiteWise. 이 방법을 사용하여 인증을 설정하고 AWS IoT SiteWise 를 데이터 소스로 추가하거나 자체 관리형 Grafana 서버에서와 동일한 방법을 사용하여 데이터 소스와 필요한 인증 자격 증명을 수동으로 설정할 수 있습니다.

**Topics**
+ [

# AWS 데이터 소스 구성을 사용하여를 데이터 소스 AWS IoT SiteWise 로 추가
](IoTSiteWise-adding-AWS-config.md)
+ [

# 수동으로 AWS IoT SiteWise 데이터 소스 추가
](iotsitewise-add-the-data-source.md)
+ [

## AWS IoT SiteWise 설정
](#iotsitewise-settings)
+ [

# AWS IoT SiteWise 데이터 소스 사용
](IoTSiteWise-using.md)

# AWS 데이터 소스 구성을 사용하여를 데이터 소스 AWS IoT SiteWise 로 추가


 AWS 데이터 소스 구성을 사용하려면 먼저 Amazon Managed Grafana 콘솔을 사용하여 계정 또는 전체 조직 단위의 AWS IoT SiteWise 리소스를 읽는 데 필요한 IAM 정책을 워크스페이스에 부여하는 서비스 관리형 IAM 역할을 활성화합니다. 그런 다음, Amazon Managed Grafana 워크스페이스 콘솔을 사용하여 AWS IoT SiteWise 를 데이터 소스로 추가합니다.

**AWS 데이터 소스 구성을 사용하여를 데이터 소스 AWS IoT SiteWise 로 추가하려면**

1. [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)에서 Amazon Managed Grafana 콘솔을 엽니다.

1. 페이지 왼쪽 상단에서 메뉴 아이콘을 선택한 다음, **모든 워크스페이스**를 선택합니다.

1. 워크스페이스 이름을 선택하세요.

1. 이 워크스페이스를 생성할 때이 워크스페이스에 서비스 관리형 권한을 사용하도록 선택하지 않은 경우 Grafana 워크스페이스 콘솔에서 AWS 데이터 소스 구성 옵션을 사용할 수 있도록 적절한 IAM 역할 및 정책이 활성화되도록 고객 관리형 권한을 사용하여 서비스 관리형 권한을 사용하는 것으로 변경합니다. 이를 수행하려면 **IAM 역할** 옆의 편집 아이콘을 선택하고 **서비스 관리형**, **변경 사항 저장**을 선택하세요. 자세한 내용은 [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md) 단원을 참조하십시오.

1. **데이터 소스** 탭을 선택하세요. 그런 다음, **AWS IoT SiteWise**의 확인란을 선택하고 **작업**, **서비스 관리형 정책 활성화**를 선택하세요.

1. **데이터 소스** 탭을 다시 선택한 다음, **AWS IoT SiteWise** 행에서 **Grafana에서 구성**을 선택하세요.

1. 필요한 경우 IAM Identity Center를 사용하여 Grafana 워크스페이스 콘솔에 로그인합니다.

1. Grafana 워크스페이스 콘솔의 왼쪽 탐색 모음에서 AWS 아이콘을 선택한 다음 **AWS 서비스**, **IoT SiteWise**를 선택합니다.

1.  AWS IoT SiteWise 데이터 소스가 쿼리할 기본 리전을 선택하고 계정을 선택한 다음 **데이터 소스 추가**를 선택합니다.

# 수동으로 AWS IoT SiteWise 데이터 소스 추가


**AWS IoT SiteWise 데이터 소스를 수동으로 추가하려면**

1.  Grafana 콘솔 사이드 메뉴에서 **구성**(톱니) 아이콘에서 일시 중지하고 **데이터 소스**를 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

1. **AWS IoT SiteWise** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에서 **SiteWise**를 입력하기 시작하면 해당 항목을 찾는 데 도움이 됩니다.

## AWS IoT SiteWise 설정



|  이름  |  설명  | 
| --- | --- | 
|  이름  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  인증 제공업체  |  자격 증명을 가져올 제공업체를 지정합니다. | 
|  기본 리전  |  쿼리 편집기에서 리전을 설정하는 데 사용됩니다(쿼리별로 변경 가능). | 
|  자격 증명 프로파일 이름  |  사용할 프로파일의 이름을 지정합니다(\$1/.aws/credentials 파일을 사용하는 경우). 기본값을 사용하려면 비워 둡니다. | 
|  역할 ARN 수임  |  수임할 역할의 ARN을 지정합니다. | 
|  엔드포인트(선택 사항)  |  대체 서비스 엔드포인트를 지정해야 하는 경우. | 

# AWS IoT SiteWise 데이터 소스 사용


 AWS IoT SiteWise 데이터 소스를 사용하는 방법에 대한 자세한 내용은 Github의 [AWS IoT SiteWise 데이터 소스를](https://github.com/grafana/iot-sitewise-datasource/blob/main/src/README.md) 참조하세요.

# an AWS IoT TwinMaker 데이터 소스에 연결
AWS IoT TwinMaker

**참고**  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

 Amazon Managed Grafana를 사용하면 강력한 산업 데이터 분석 서비스인 AWS IoT TwinMaker를 Grafana 워크스페이스의 앱 및 데이터 소스로 추가할 수 있습니다. AWS IoT TwinMaker를 사용하면 최종 사용자 3D 디지털 트윈 애플리케이션을 생성하여 산업 운영을 모니터링할 수 있습니다. The AWS IoT TwinMaker는 개발자가 실제 시스템의 디지털 복제본을 더 빠르게 생성할 수 있도록 하여 더 많은 고객이 디지털 트윈이 운영을 최적화할 수 있는 잠재력을 실현할 수 있도록 지원하는 서비스입니다. AWS IoT TwinMaker for Grafana에서는 사용자 지정 패널, 대시보드 템플릿 및 디지털 트윈 데이터에 연결할 수 있는 데이터 소스를 제공합니다.

# 수동으로 AWS IoT TwinMaker 데이터 소스 추가


## 사전 조건


시작하기 전에 AWS 계정에서 **AWS IoT TwinMaker**에 액세스할 수 있는지 확인합니다.

 워크스페이스 IAM 역할에 AWS IoT TwinMaker에 액세스할 수 있는 권한을 추가하는 방법을 알아보려면 섹션을 참조하세요[워크스페이스 사용자 역할에 AWS IoT TwinMaker에 대한 권한 추가](AMG-iot-twinmaker.md#twinmaker-add-permission).

**AWS IoT TwinMaker 데이터 소스를 추가하려면:**

1. 사용자 역할이 관리자 또는 편집자인지 확인하세요.

1.  Grafana 콘솔 사이드 메뉴에서 **구성**(톱니) 아이콘 위에 마우스를 올려 놓고 **데이터 소스**를 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

1. **AWS IoT TwinMaker** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에서 **TwinMaker**를 입력하기 시작하면 해당 항목을 찾는 데 도움이 됩니다.

1. 그러면 **연결 세부 정보** 페이지가 열립니다. [AWS IoT TwinMaker 연결 세부 정보 설정](AMG-iot-twinmaker.md#twinmaker-connection-details)을 구성하는 단계를 수행하세요.

## 워크스페이스 사용자 역할에 AWS IoT TwinMaker에 대한 권한 추가


**워크스페이스 사용자 역할에 AWS IoT TwinMaker에 대한 권한을 추가하려면 Amazon Managed Grafana 워크스페이스와 TwinMaker 대시보드 역할 간에 역할 권한을 맡습니다.**

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 이동합니다.

1. 수동으로 대시보드 역할을 생성합니다. 대시보드 역할 생성에 대한 자세한 내용은 [Grafana AWS IoT TwinMaker 대시보드 역할을 수동으로 생성하려면](#iot-twinmaker-dashboard-role) 섹션을 참조하세요.

## AWS IoT TwinMaker 연결 세부 정보 설정


**연결 세부 정보 설정 구성**

1.  **연결 세부 정보** 메뉴에서 인증 제공업체(권장: **Workspace IAM 역할**)를 선택하세요.

1.  쿼리하려는 **기본 리전**을 선택하세요.

1.  **TwinMaker 설정**에서 AWS IoT TwinMaker 워크스페이스 이름을 입력합니다.

# AWS IoT TwinMaker 데이터 소스 사용


 AWS IoT TwinMaker 데이터 소스를 사용하는 방법에 대한 자세한 내용은 GitHub의 [AWS IoT TwinMaker Datasource](https://github.com/grafana/grafana-iot-twinmaker-app)를 참조하세요.

## Grafana AWS IoT TwinMaker 대시보드 역할을 수동으로 생성하려면


**Grafana AWS IoT TwinMaker 대시보드 역할을 수동으로 생성하려면**

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔에 로그인합니다.

1. 요약에서 Amazon Managed Grafana 워크스페이스 역할을 찾으세요. 다음과 같이 표시됩니다.

   ```
    AmazonGrafanaServiceRole-random_ID
   ```

1. 다음 인라인 정책을 역할에 추가하세요.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::111122223333:role/TwinMakerDashboardRole"
       }
   }
   ```

------

1. 각 대시보드 역할에 대해 새 인라인 정책을 추가하세요. 또는 **리소스** 줄에서 Amazon 리소스 이름(ARN) 역할 목록을 추가하세요.

1. IAM 콘솔에서 대시보드 역할을 찾으세요. `SceneViewer` 정책 및 선택적으로 `VideoPlayer` 정책이 있어야 합니다.

1. **신뢰 관계** 탭을 선택하세요.

1. **신뢰 관계 편집**을 선택합니다.

1. 다음 정책을 입력하세요. 이때 *AMGWorkspaceRoleArn*을 계정의 Arn으로 바꾸세요.

------
#### [ JSON ]

****  

   ```
      {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": "AMGWorkspaceRoleARN"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

## AWS IoT TwinMaker 정책의 예


다음은 대시보드 역할에 연결할 수 있는 minimal AWS IoT TwinMaker 정책입니다. 자체 리소스를 기반으로 Amazon S3 버킷 ARN뿐만 아니라 AWS IoT TwinMaker 워크스페이스 ARN 및 ID의 값을 바꿔야 합니다.

# Amazon Managed Service for Prometheus 및 오픈 소스 Prometheus 데이터 소스에 연결
Prometheus

 Amazon Managed Grafana에서 Prometheus 데이터 소스는 자체 관리형 Prometheus 서버 및 Amazon Managed Service for Prometheus 워크스페이스를 모두 데이터 소스로 사용하는 것을 지원합니다. Amazon Managed Service for Prometheus에 대한 자세한 내용은 [What is Amazon Managed Service for Prometheus?](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)를 참조하세요.

 Amazon Managed Grafana를 사용하면 Grafana 워크스페이스 콘솔의 데이터 소스 구성 옵션을 통해 Amazon Managed Service for Prometheus 워크스페이스를 AWS 데이터 소스로 추가할 수 있습니다. 이 기능은 기존 Amazon Managed Service for Prometheus 계정을 검색하여 Amazon Managed Service for Prometheus를 데이터 소스로 추가하는 작업을 간소화하고 Amazon Managed Service for Prometheus에 액세스하는 데 필요한 인증 자격 증명의 구성을 관리합니다.

**참고**  
[Alertmanager 데이터 소스 구성](data-source-alertmanager.md#data-source-alertmanager-create)을 통해 통합 Grafana 알림 인터페이스에서 Prometheus 알림을 볼 수 있습니다.

**Topics**
+ [

# AWS 데이터 소스 구성을 사용하여 Amazon Managed Service for Prometheus를 데이터 소스로 추가
](AMP-adding-AWS-config.md)
+ [

# 수동으로 Prometheus 데이터 소스 추가
](prometheus-manually-adding.md)
+ [

# Prometheus 데이터 소스 사용
](using-prometheus-datasource.md)
+ [

# Amazon Managed Service for Prometheus에서 알림 시각화
](amp-configure-alerts.md)
+ [

# 예시 구성
](amp-configure-exemplars.md)

# AWS 데이터 소스 구성을 사용하여 Amazon Managed Service for Prometheus를 데이터 소스로 추가
AWS 데이터 소스 구성으로 추가

 AWS 데이터 소스 구성을 사용하려면 먼저 Amazon Managed Grafana 콘솔을 사용하여 계정 또는 전체 조직 단위에서 Amazon Managed Service for Prometheus 리소스를 읽는 데 필요한 IAM 정책을 워크스페이스에 부여하는 서비스 관리형 IAM 역할을 활성화합니다. 그런 다음, Amazon Managed Grafana 워크스페이스 콘솔을 사용하여 Amazon Managed Service for Prometheus를 데이터 소스로 추가합니다.

**AWS 데이터 소스 구성을 사용하여 Amazon Managed Service for Prometheus를 데이터 소스로 추가하려면**

1. [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)에서 Amazon Managed Grafana 콘솔을 엽니다.

1. 페이지 왼쪽 상단에서 메뉴 아이콘을 선택한 다음, **모든 워크스페이스**를 선택합니다.

1. 워크스페이스 이름을 선택하세요.

1. 이 워크스페이스를 생성할 때이 워크스페이스에 서비스 관리형 권한을 사용하도록 선택하지 않은 경우 Grafana 워크스페이스 콘솔에서 AWS 데이터 소스 구성 옵션을 사용할 수 있도록 적절한 IAM 역할 및 정책이 활성화되도록 고객 관리형 권한을 사용하여 서비스 관리형 권한을 사용하는 것으로 변경합니다. 이를 수행하려면 **IAM 역할** 옆의 편집 아이콘을 선택하고 **서비스 관리형**, **변경 사항 저장**을 선택하세요. 자세한 내용은 [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md) 단원을 참조하십시오.

1. **데이터 소스** 탭을 선택하세요. 그런 다음, **Amazon Managed Service for Prometheus**의 확인란을 선택하고 **작업**, **서비스 관리형 정책 활성화**를 선택하세요.

1. **데이터 소스** 탭을 다시 선택한 다음, **Amazon Managed Service for Prometheus** 행에서 **Grafana에서 구성**을 선택하세요.

1. 필요한 경우 IAM Identity Center를 사용하여 Grafana 워크스페이스 콘솔에 로그인합니다.

1. Grafana 워크스페이스 콘솔의 왼쪽 탐색 모음에서 AWS 아이콘을 선택한 다음 **AWS 서비스**, **Prometheus를** 선택합니다.

1. Amazon Managed Grafana에서 Amazon Managed Service for Prometheus 워크스페이스를 찾기 위해 검색할 리전을 선택한 다음, 추가하려는 계정과 Amazon Managed Service for Prometheus 워크스페이스를 선택하고 **데이터 소스 추가**를 선택하세요.

# 수동으로 Prometheus 데이터 소스 추가
수동으로 추가

**수동으로 Prometheus 데이터 소스를 추가하는 방법**

1.  Grafana 콘솔 측 메뉴에서 **관리** 메뉴 항목(또는 Grafana v8의 경우 **구성**(톱니) 아이콘)에서 일시 중지한 다음, **데이터 소스**를 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

1. **Prometheus** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에서 **Prometheus**를 입력하기 시작하면 해당 항목을 찾는 데 도움이 됩니다.

# Prometheus 데이터 소스 사용


## Prometheus 설정



|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  Url  |  Prometheus 서버의 URL(예: https://prometheus.example.org:9090). | 
|  Access  |  서버(기본값) = Grafana 백엔드/서버에서 URL에 액세스할 수 있어야 합니다. | 
|  Basic Auth  |  Prometheus 데이터 소스에 대한 기본 인증을 활성화합니다. | 
|  User  |  기본 인증을 위한 사용자 이름. | 
|  Password  |  기본 인증을 위한 암호. | 
|  Scrape interval  |  이를 Prometheus에 구성된 일반적인 스크레이프 및 평가 간격으로 설정합니다. 기본값은 15s(15초)입니다. | 
|  Disable metrics lookup  |  이 옵션을 선택하면 쿼리 필드의 자동 완성에서 지표 선택기 및 지표/레이블 지원이 비활성화됩니다. 그러면 더 큰 Prometheus 인스턴스에 성능 문제가 있는 경우 도움이 됩니다. | 
|  Custom Query Parameters  |  Prometheus 쿼리 URL에 사용자 지정 파라미터를 추가합니다. 예: timeout, partial\$1response, dedup 또는 max\$1source\$1resolution. 여러 파라미터를 '&' 기호로 함께 연결해야 합니다. | 

## Prometheus 쿼리 편집기


 다음 섹션에서는 대시보드 및 탐색에서 Prometheus 쿼리 편집기에 대한 정보와 옵션을 제공합니다.

### 대시보드의 쿼리 편집기


 제목을 선택한 다음, **편집**을 선택하거나 패널에서 일시 중지한 동안 **e** 키를 눌러서 편집 모드에서 그래프를 엽니다.


|  이름  |  설명  | 
| --- | --- | 
|  Query expression  |  Prometheus 쿼리 표현식에 대한 자세한 내용은 [Prometheus 설명서](https://prometheus.io/docs/querying/basics/)를 참조하세요. | 
|  Legend format  |  이름 또는 패턴을 사용하여 시계열의 이름을 제어합니다. 예를 들어 \$1\$1hostname\$1\$1은 hostname 레이블의 레이블 값으로 대체됩니다. | 
|  Min step  |  [Prometheus 범위 쿼리의 `step`파라미터](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)와 \$1\$1\$1interval 및 \$1\$1\$1rate\$1interval 변수의 추가 하한 값. 제한에서는 절댓값을 사용하며 해상도 설정에 의해 수정되지 않습니다. | 
|  Resolution  |  1/1에서는 각 픽셀이 하나의 데이터 포인트에 대응하도록 [Prometheus 범위 쿼리의 `step` 파라미터](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries) 및 \$1\$1\$1interval 변수를 모두 설정합니다. 더 나은 성능을 위해 더 낮은 해상도를 사용합니다. 1/2에서는 모두 다른 픽셀에 대해서만 데이터 포인트를 검색하고 1/10에서는 10픽셀당 하나의 데이터 포인트를 검색합니다. 최소 시간 간격 및 최소 단계 모두 \$1\$1\$1interval 및 step의 최종 값을 제한합니다. | 
|  Metric lookup  |  이 입력 필드에서 지표 이름을 검색합니다. | 
|  Format as  |  Table, Time series 또는 Heatmap사이를 전환합니다. Table은 테이블 패널에서만 작동합니다. Heatmap은 히트맵 패널에서 히스토그램 유형의 지표를 표시하는 데 적합합니다. 누적 히스토그램을 일반 히스토그램으로 변환하고 버킷 바인딩을 기준으로 시리즈를 정렬합니다. | 
|  Instant  |  요청된 시계열에 대해 Prometheus에서 스크레이핑한 최신 값만 반환하려면 '인스턴트' 쿼리를 수행합니다. 인스턴트 쿼리는 정상 범위 쿼리보다 훨씬 빠르게 결과를 반환합니다. 이를 사용하여 레이블 세트를 조회합니다. | 
|  Min time interval  |  이 값에 해상도 설정의 분모를 곱하면 [Prometheus 범위 쿼리의 `step` 파라미터](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries) 및 \$1\$1\$1interval 변수 모두에 하한이 설정됩니다. 데이터 소스 옵션에 설정된 스크레이프 간격을 기본값으로 사용합니다. | 

**참고**  
 Amazon Managed Grafana에서는 동적으로 계산된 단계에 맞게 쿼리에 대한 요청 날짜를 수정합니다. 그러면 지표 데이터를 일관되게 표시할 수 있지만 그래프의 오른쪽 엣지에 약간의 데이터 갭이 생길 수 있습니다.

#### 대시보드에서의 인스턴트 쿼리


 Prometheus 데이터 소스를 사용하면 최신 값만 쿼리하는 인스턴트 쿼리를 실행할 수 있습니다. 테이블 패널에서 결과를 시각화하여 시계열의 사용 가능한 모든 레이블을 볼 수 있습니다.

 인스턴트 쿼리 결과는 시리즈당 하나의 데이터 포인트로만 구성됩니다. 시리즈 재정의를 사용하여 그래프 패널에 표시할 수 있습니다. 그래프에 최신 값 포인트로 표시하려면 시리즈 재정의를 추가하고 `Points > true`를 선택합니다. 전체 그래프에서 가로선을 표시하려면 시리즈 재정의를 추가하고 `Transform > constant`를 선택합니다. 시리즈 재정의에 대한 자세한 내용은 [시리즈 재정의](graph-panel.md#graph-panel-series-overrides) 섹션을 참조하세요.

### 탐색의 쿼리 편집기



|  이름  |  설명  | 
| --- | --- | 
|  Query expression  |  Prometheus 쿼리 표현식에 대한 자세한 내용은 [Prometheus 설명서](https://prometheus.io/docs/querying/basics/)를 참조하세요. | 
|  Step  |  [Prometheus 범위 쿼리의 `Step` 파라미터](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries). 여기에서는 5s, 1m, 3h, 1d, 1y와 같은 시간 단위를 사용할 수 있습니다. 지정된 단위가 없는 경우 기본 단위는 s(초)입니다. | 
|  Query type  |  Range, Instant, 또는 Both. 범위 쿼리를 실행하는 경우 쿼리 결과는 그래프 및 테이블에 표시됩니다. 인스턴트 쿼리는 요청된 시계열에 대해 Prometheus에서 스크레이핑한 최신 값만 반환하고 이는 테이블에 표시됩니다. 둘 다를 선택하면 인스턴트 쿼리와 범위 쿼리가 모두 실행됩니다. 범위 쿼리 결과는 그래프로 표시되고 인스턴트 쿼리 결과는 테이블에 표시됩니다. | 

## 지표 브라우저


지표 브라우저를 사용하면 지표를 빠르게 찾고 관련 레이블을 선택하여 기본 쿼리를 빌드할 수 있습니다. 브라우저를 열면 사용 가능한 모든 지표와 레이블이 표시됩니다. Prometheus 인스턴스에서 지원하는 경우 각 지표는 툴팁에 해당 도움말 및 유형을 표시합니다.

지표를 선택하면 브라우저에서 사용 가능한 레이블 범위를 좁혀 지표에 적용되는 레이블만 표시합니다. 그런 다음, 사용 가능한 레이블 값이 하단 섹션의 목록에 표시되는 레이블을 하나 이상 선택할 수 있습니다. 각 레이블에 대해 하나 이상의 값을 선택하여 쿼리 범위를 좁힙니다.

**참고**  
시작할 지표 이름이 기억나지 않는 경우 먼저 몇 개의 레이블을 선택하여 목록 범위를 좁힌 다음, 관련 레이블 값을 찾을 수도 있습니다.

지표 브라우저의 모든 목록에는 위에 검색 필드가 있습니다. 이를 통해 특정 문자열과 일치하는 지표 또는 레이블을 빠르게 필터링할 수 있는 검색 필드가 있습니다. 값 섹션에는 하나의 검색 필드만 있습니다. 선택한 후에 여러 레이블에서 값을 찾는 데 도움이 되도록 모든 레이블에 해당 필터링이 적용됩니다. 예를 들어 레이블 앱, 작업, job\$1name 중에서 하나에만 찾으려는 값이 포함될 수 있습니다.

쿼리에 만족하면 '쿼리 사용'을 클릭하여 쿼리를 실행합니다. **비율 쿼리로 사용** 버튼은 쿼리 주위에 rate(...)[\$1\$1\$1interval]을 추가하여 카운터 지표에 대한 쿼리를 작성하는 데 도움이 됩니다. '선택기 검증' 버튼은 Prometheus에서 해당 선택기에 사용할 수 있는 시계열 수를 확인합니다.

### 제한 사항


지표 브라우저에는 10,000개의 레이블(키) 및 50,000개의 레이블 값(지표 이름 포함)과 같은 하드 제한이 있습니다. Prometheus 인스턴스가 더 많은 결과를 반환해도 브라우저는 계속 작동합니다. 그러나 결과 세트는 이러한 최대 제한을 초과하여 잘립니다.

## 템플릿 지정


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

### 쿼리 변수


 *쿼리* 유형의 변수를 사용하면 Prometheus에서 지표, 레이블 또는 레이블 값 목록을 쿼리할 수 있습니다. Prometheus 데이터 소스 플러그인은 **쿼리** 입력 필드에 사용할 수 있는 다음 함수를 제공합니다.


|  이름  |  설명  | 
| --- | --- | 
|  label\$1names()  |  레이블 이름 목록을 반환합니다. | 
|  label\$1values(label)  |  모든 지표에서 label에 대한 레이블 값 목록을 반환합니다. | 
|  label\$1values(metric, label)  |  지정된 지표에서 label에 대한 레이블 값 목록을 반환합니다. | 
|  metrics(metric)  |  지정된 metric 정규식과 일치하는 지표 목록을 반환합니다. | 
|  query\$1result(query)  |  query에 대한 Prometheus 쿼리 결과 목록을 반환합니다. | 

 *지표 이름*, *레이블 이름* 및 *레이블 값*에 대한 자세한 내용은 [Prometheus 설명서](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)를 참조하세요.

#### 간격 및 범위 변수 사용


**참고**  
 `$__range`, `$__range_s` 및 `$__range_ms`에 대한 지원은 Grafana v5.3에서만 사용할 수 있습니다.

 쿼리 변수에서 `$__interval`, `$__interval_ms`, `$__range`, `$__range_s`, `$__range_ms`와 같은 몇 가지 전역 변수를 사용할 수 있습니다. 자세한 내용은 [전역 변수](variables-types.md#global-variables) 단원을 참조하십시오. `label_values` 함수는 쿼리를 지원하지 않으므로 변수 쿼리를 필터링해야 하는 경우 `query_result` 함수와 함께 사용하기 편리할 수 있습니다.

 대시보드에서 시간 범위를 변경할 때 올바른 인스턴스를 가져오려면 변수의 `refresh` 트리거를 `On Time Range Change`로 설정해야 합니다.

다음 코드 예제에서는 대시보드에 표시된 시간 범위 동안 평균 QPS를 기반으로 가장 사용량이 높은 요청 인스턴스 5개로 변수를 채우는 방법을 보여줍니다.

```
Query: query_result(topk(5, sum(rate(http_requests_total[$__range])) by (instance)))
Regex: /"([^"]+)"/
```

 다음 코드 예제에서는 `$__range_s`를 사용하여 대시보드에 표시된 시간 범위 동안 특정 상태의 인스턴스로 변수를 채우는 방법을 보여줍니다.

```
Query: query_result(max_over_time(<metric>[${__range_s}s]) != <state>)
Regex:
```

### `$__rate_interval` 변수 사용


 `$__rate_interval` 변수는 비율 함수에 사용하기 위해 제공됩니다. 최대(`$__interval` \$1 *스크레이프 간격*, 4 \$1 *스크레이프 간격*)로 정의됩니다. *스크레이프 간격*은 최소 단계 설정(AKA query\$1interval, PromQL 쿼리당 설정)(설정된 경우)입니다. 그렇지 않으면 Prometheus 데이터 소스에 설정된 *스크레이프 간격*입니다(그러나 후자는 해상도 설정에서 수정되기 때문에 패널에서 최소 간격 설정 무시).

### 쿼리에서 변수 사용


 두 가지 구문이 있습니다.
+  `$<varname>` 예: rate(http\$1requests\$1total\$1job=\$1"\$1job"\$1[5m]) 
+  `[[varname]]` 예: rate(http\$1requests\$1total\$1job=\$1"[[job]]"\$1[5m]) 

 왜 두 가지 방법이 있을까요? 첫 번째 구문은 읽고 쓰기가 더 쉽지만 단어 중간에 변수를 사용할 수는 없습니다. *다중 값* 또는 *모든 값 포함* 옵션이 활성화되면 Grafana는 레이블을 일반 텍스트에서 정규식 호환 문자열로 변환합니다. 즉 `=` 대신 `=~`를 사용해야 합니다.

## Annotations


 주석을 사용하여 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 대시보드 메뉴 또는 주석 보기를 사용하여 주석 쿼리를 추가합니다. 자세한 내용은 [Annotations](dashboard-annotations.md) 단원을 참조하십시오.

 Prometheus는 주석을 쿼리하는 두 가지 방법을 지원합니다.
+  일반 지표 쿼리 
+  보류 중 및 실행 알림에 대한 Prometheus 쿼리. 자세한 내용은 [Inspecting alerts during runtime](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#inspecting-alerts-during-runtime)을 참조하세요.

 단계 옵션은 쿼리에서 반환되는 이벤트 수를 제한하는 데 유용합니다.

# Amazon Managed Service for Prometheus에서 알림 시각화


이미 연결된 Prometheus 데이터 소스에 대해 Alertmanager 데이터 소스를 구성하여 Amazon Managed Grafana에서 Amazon Managed Service for Prometheus 또는 Prometheus 알림을 시각화할 수 있습니다.

**사전 조건**

Amazon Managed Service for Prometheus와 함께 사용하도록 Alertmanager를 구성하려면 다음 사전 조건을 완료해야 합니다.
+ 수집된 지표와 하나 이상의 알림 또는 기록 규칙이 구성된 [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) 인스턴스. 워크스페이스의 URL이 필요합니다. (Amazon Managed Service for Prometheus의 워크스페이스 세부 정보에서 **엔드포인트** URL을 볼 수 있습니다. 워크스페이스 URl은 끝에 `api/v1/remote_write`가 없는 엔드포인트 URL입니다.)
+ [데이터 소스로 구성](prometheus-data-source.md)된 Prometheus 인스턴스를 포함하여 [생성](AMG-create-workspace.md)된 Amazon Managed Grafana 워크스페이스.
+ Amazon Managed Grafana에는 Prometheus 리소스에 대한 다음과 같은 권한이 있어야 합니다. [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md)에 설명된 서비스 관리형 또는 고객 관리형 정책에 추가해야 합니다.
  + `aps:ListRules`
  + `aps:ListAlertManagerSilences`
  + `aps:ListAlertManagerAlerts`
  + `aps:GetAlertManagerStatus`
  + `aps:ListAlertManagerAlertGroups`
  + `aps:PutAlertManagerSilences`
  + `aps:DeleteAlertManagerSilence`

**Amazon Managed Service for Prometheus와 함께 사용하도록 Alertmanager 데이터 소스를 구성하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **구성** 아래 **데이터 소스** 페이지를 선택하세요.

1. **데이터 소스 추가**를 선택하고 데이터 소스 유형 목록에서 **Alertmanager**를 선택하세요.

1. 새 데이터 소스에 대해 다음 정보를 제공합니다.
   + **구현 **에서 **Prometheus**를 선택하세요.
   + **HTTP**의 **URL**에 Prometheus 워크스페이스 URL(`alertmanager`가 추가됨)을 제공합니다. 예를 들어 `https://aps-workspaces.us-east1.amazonaws.com/workspaces/ws-example-1234-5678-abcd-xyz00000001/alertmanager`입니다.
   + **인증**에서 **SigV4Auth**를 켭니다. 이렇게 하면 요청에 [AWS 인증](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)을 사용하도록 Grafana에 지시하게 됩니다.
   + **SigV4Auth 세부 정보**에서 **기본 리전**으로 Prometheus 인스턴스의 리전(예: `us-east-1`)을 입력합니다.

1. **저장 및 테스트**를 선택하여 데이터 소스 설정을 완료하세요.

   데이터 소스가 올바르게 설정된 경우 **상태 확인 통과** 메시지가 표시됩니다.

**새 Alertmanager 데이터 소스를 Prometheus 데이터 소스에 연결하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **구성** 아래 **데이터 소스** 페이지를 선택하세요.

1. Amazon Managed Service for Prometheus의 원본 데이터 소스를 선택하고 **알림 UI를 통해 알림 관리** 토글 스위치를 켜세요.

1. **저장 및 테스트**를 선택하여 데이터 소스 구성을 완료하세요.

# 예시 구성


**참고**  
이 기능을 사용하려면 Prometheus 버전 2.26 이상이 필요합니다.  
Amazon Managed Service for Prometheus에서는 예제가 지원되지 않습니다.

탐색 및 대시보드 모두에서 지표와 함께 예시 데이터를 표시할 수 있습니다. 예시는 특정 이벤트의 높은 카디널리티 메타데이터를 기존 시계열 데이터와 연결합니다.

예시에 링크를 추가하여 데이터 소스 설정에서 예시를 구성할 수 있습니다. URL에서 매크로를 사용할 수 있습니다. 예를 들어 `https://example.com/${__value.raw}`과 같은 URL을 생성할 수 있습니다.

# Amazon Timestream 데이터 소스에 연결
Amazon Timestream

**참고**  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

 Amazon Managed Grafana를 사용하면 Grafana 워크스페이스 콘솔의 데이터 소스 구성 옵션을 사용하여 Amazon Timestream을 AWS 데이터 소스로 추가할 수 있습니다. 이 기능은 기존 Timestream 계정을 검색하여 Timestream을 데이터 소스로 추가하는 작업을 간소화하고 Timestream에 액세스하는 데 필요한 인증 자격 증명의 구성을 관리합니다. 이 방법을 사용하여 인증을 설정하고 Timestream을 데이터 소스로 추가하거나 자체 관리형 Grafana 서버에서와 동일한 방법을 사용하여 데이터 소스와 필요한 인증 자격 증명을 수동으로 설정할 수 있습니다.



# AWS 데이터 소스 구성을 사용하여 Timestream을 데이터 소스로 추가
AWS 데이터 소스 구성으로 추가

 AWS 데이터 소스 구성을 사용하려면 먼저 Amazon Managed Grafana 콘솔을 사용하여 계정 또는 전체 조직 단위에서 Timestream 리소스를 읽는 데 필요한 IAM 정책을 워크스페이스에 부여하는 서비스 관리형 IAM 역할을 활성화합니다. 그런 다음, Amazon Managed Grafana 워크스페이스 콘솔을 사용하여 Timestream을 데이터 소스로 추가합니다.

**AWS 데이터 소스 구성을 사용하여 Timestream을 데이터 소스로 추가하려면**

1. [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)에서 Amazon Managed Grafana 콘솔을 엽니다.

1. 페이지 왼쪽 상단에서 메뉴 아이콘을 선택한 다음, **모든 워크스페이스**를 선택합니다.

1. 워크스페이스 이름을 선택하세요.

1. 이 워크스페이스를 생성할 때이 워크스페이스에 서비스 관리형 권한을 사용하도록 선택하지 않은 경우 Grafana 워크스페이스 콘솔에서 AWS 데이터 소스 구성 옵션을 사용할 수 있도록 적절한 IAM 역할 및 정책이 활성화되도록 고객 관리형 권한을 사용하여 서비스 관리형 권한을 사용하는 것으로 변경합니다. 이를 수행하려면 **IAM 역할** 옆의 편집 아이콘을 선택하고 **서비스 관리형**, **변경 사항 저장**을 선택하세요. 자세한 내용은 [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md) 단원을 참조하십시오.

1. **데이터 소스** 탭을 선택하세요. 그런 다음, **Amazon Timestream**의 확인란을 선택하고 **작업**, **서비스 관리형 정책 활성화**를 선택하세요.

1. **데이터 소스** 탭을 다시 선택한 다음, **Amazon Timestream** 행에서 **Grafana에서 구성**을 선택하세요.

1. 필요한 경우 IAM Identity Center를 사용하여 Grafana 워크스페이스 콘솔에 로그인합니다.

1. Grafana 워크스페이스 콘솔의 왼쪽 탐색 모음에서 **앱을** 선택한 다음 **AWS 데이터 소스를** 선택합니다(Grafana v8에서 왼쪽 메뉴에서 AWS 아이콘 선택).

1. **AWS 서비스** 탭을 선택한 다음, **Timestream**을 선택하세요.

1. **Timestream** 데이터 소스가 쿼리할 기본 리전을 선택하고 계정을 선택한 다음, **데이터 소스 추가**를 선택하세요.

# 수동으로 Timestream 데이터 소스 추가
수동으로 추가

**수동으로 Timestream 데이터 소스를 추가하는 방법**

1.  Grafana 콘솔 사이드 메뉴에서 **구성**(톱니) 아이콘에서 일시 중지하고 **데이터 소스**를 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

1. **Amazon Timestream** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에 **Timestream**를 찾을 수 있습니다.

## Timestream 설정



|  이름  |  설명  | 
| --- | --- | 
|  이름  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  인증 제공업체  |  자격 증명을 가져올 제공업체를 지정합니다. | 
|  기본 리전  |  쿼리 편집기에서 리전을 설정하는 데 사용됩니다(쿼리별로 변경 가능). | 
|  자격 증명 프로파일 이름  |  사용할 프로파일의 이름을 지정합니다(\$1/.aws/credentials 파일을 사용하는 경우). 기본값을 사용하려면 비워 둡니다. | 
|  역할 ARN 수임  |  수임할 역할의 ARN을 지정합니다. | 
|  엔드포인트(선택 사항)  |  대체 서비스 엔드포인트를 지정해야 하는 경우. | 

### Authentication


 이 섹션에서는 Amazon Timestream 데이터 소스에 대해 사용할 수 있는 다양한 유형의 인증을 다룹니다.

#### 자격 AWS 증명 예


 Amazon Managed Grafana에서는 인증의 자격 증명 파일 방법을 사용할 수 없습니다.

# Timestream 데이터 소스 사용


## 쿼리 편집기


 쿼리 편집기는 이전에 나열된 매크로와 대시보드 템플릿 변수 외에도 Timestream 구문을 허용합니다.

 **Ctrl\$1Space**를 눌러 IntelliSense 제안을 엽니다.

## 매크로


 구문을 단순화하고 날짜 범위 필터와 같은 동적 부분을 허용하기 위해 쿼리에 매크로가 포함될 수 있습니다.


|  매크로 예제  |  설명  | 
| --- | --- | 
|  *\$1\$1\$1database* |  선택한 데이터베이스를 지정합니다. 이때 데이터 소스 구성의 기본값 또는 쿼리 편집기의 명시적 값을 사용합니다. | 
|  *\$1\$1\$1table*  |  선택한 데이터베이스를 지정합니다. 이때 데이터 소스 구성의 기본값 또는 쿼리 편집기의 명시적 값을 사용합니다. | 
|  *\$1\$1\$1measure*  |  선택한 측정을 지정합니다. 이때 데이터 소스 구성의 기본값 또는 쿼리 편집기의 명시적 값을 사용합니다. | 
|  *\$1\$1\$1timeFilter*  |  대시보드 범위로 시간을 제한하는 표현식으로 대체됩니다. | 
|  *\$1\$1\$1interval\$1ms*  |  그래프의 단일 픽셀에서 포함해야 하는 시간을 나타내는 숫자로 대체됩니다. | 

# Amazon Athena 데이터 소스에 연결
Amazon Athena

**참고**  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

**참고**  
 이 설명서에서는 Athena 데이터 소스를 사용하기 전에 Amazon Athena 서비스에 익숙하다고 가정합니다.

Amazon Managed Grafana를 사용하면 Grafana 워크스페이스 콘솔의 데이터 소스 구성 옵션을 사용하여 Athena를 AWS 데이터 소스로 추가할 수 있습니다. 이 기능은 기존 Athena 계정을 검색하여 Athena를 데이터 소스로 추가하는 작업을 간소화하고 Athena에 액세스하는 데 필요한 인증 자격 증명의 구성을 관리합니다. 이 방법을 사용하여 인증을 설정하고 Athena를 데이터 소스로 추가하거나 자체 관리형 Grafana 서버에서와 동일한 방법을 사용하여 데이터 소스와 필요한 인증 자격 증명을 수동으로 설정할 수 있습니다.



 Amazon Managed Grafana에서 Athena에 액세스하기 위한 사전 조건이 있습니다. Athena 데이터 소스 사용과 관련된 사전 조건은 [사전 조건](Athena-prereq.md) 섹션을 참조하세요.

# 사전 조건


Amazon Managed Grafana for Athena에 대한 관리형 정책을 사용하려면 Athena 데이터 소스를 구성하기 전에 다음 태스크를 완료합니다.
+ `GrafanaDataSource: true`를 사용하여 Athena 작업 그룹에 태그를 지정합니다.
+ `grafana-athena-query-results-`로 시작하는 이름의 S3 버킷을 생성합니다. 이 정책은 해당 명명 규칙을 사용하여 쿼리 결과를 S3 버킷에 쓸 수 있는 권한을 제공합니다.

Athena 쿼리의 기본 데이터 소스에 액세스하기 위한 Amazon S3 권한은 이 관리형 정책에 포함되지 않습니다. Amazon S3 버킷에 필요한 권한을 사례별로 수동으로 추가해야 합니다. 자세한 내용은 이 설명서의 [Amazon Managed Grafana에 대한 자격 증명 기반 정책 예제](https://docs.aws.amazon.com/grafana/latest/userguide/security_iam_id-based-policy-examples.html)를 참조하세요.

# AWS 데이터 소스 구성을 사용하여 Amazon Athena를 데이터 소스로 추가


## 사전 조건

+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)가 사용자 환경에 설치 및 구성됩니다.
+ 계정에서 Athena에 액세스할 수 있습니다.

 AWS 데이터 소스 구성을 사용하려면 먼저 Amazon Managed Grafana 콘솔로 이동하여 계정 또는 전체 조직 단위에서 Athena 리소스를 읽는 데 필요한 IAM 정책을 워크스페이스에 부여하는 서비스 관리형 IAM 역할을 활성화합니다. 그런 다음, Amazon Managed Grafana 워크스페이스 콘솔을 사용하여 Athena 를 데이터 소스로 추가합니다.

# AWS 데이터 소스 구성을 사용하여 Athena를 데이터 소스로 추가하려면


1.  사용자 역할이 관리자 또는 편집자인지 확인합니다.

1.  [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)의 Amazon Managed Grafana 콘솔에서 작업할 워크스페이스를 선택하세요.

1. 이 워크스페이스를 생성할 때이 워크스페이스에 서비스 관리형 권한을 사용하도록 선택하지 않은 경우 Grafana 워크스페이스 콘솔에서 AWS 데이터 소스 구성 옵션을 사용할 수 있도록 적절한 IAM 역할 및 정책이 활성화되도록 고객 관리형 권한을 사용하여 서비스 관리형 권한을 사용하는 것으로 변경합니다. 이를 수행하려면 **IAM 역할** 옆의 편집 아이콘을 선택하고 **서비스 관리형**, **변경 사항 저장**을 선택하세요. 자세한 내용은 [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md) 단원을 참조하십시오.

1. **데이터 소스** 탭을 선택하세요. 그런 다음, **Amazon Athena**의 확인란을 선택하고 **작업**, **서비스 관리형 정책 활성화**를 선택하세요.

1. **데이터 소스** 탭을 다시 선택한 다음, **Amazon Athena** 행에서 **Grafana에서 구성**을 선택하세요.

1. 필요한 경우 IAM Identity Center를 사용하여 Grafana 워크스페이스 콘솔에 로그인합니다. 사용자가 Athena 데이터 소스에 액세스하려면 사용자/역할에 Athena 액세스 정책이 연결되어 있어야 합니다. 자세한 내용은 [AWS 관리형 정책: AmazonGrafanaAthenaAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaAthenaAccess) 섹션을 참조하세요.

1. Grafana 워크스페이스 콘솔의 왼쪽 탐색 모음에서 아래쪽 AWS 아이콘(두 개 있음)을 선택한 다음 **데이터 소스** 메뉴에서 **Athena**를 선택합니다.

1. Athena 데이터 소스에서 쿼리할 기본 리전을 선택한 다음, 원하는 계정을 선택하고 **데이터 소스 추가**를 선택하세요.

1.  단계에 따라 [**Athena 세부 정보** 설정](#Athena-settings)에서 **Athena 세부 정보**를 구성하세요.

## **Athena 세부 정보** 설정


****Athena 세부 정보** 설정 구성**

1.  **연결 세부 정보** 메뉴에서 인증 제공업체(권장: **워크스페이스 IAM 역할**)를 선택하세요.

1.  Athena 계정이 있는 대상 Athena 데이터 소스를 선택하세요. 데이터 소스를 선택하지 않는 경우 드롭다운에 기본 데이터 소스가 있습니다.

   새 Athena 계정을 생성하려면 [Athena 시작](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)의 지침을 따르세요.

1.  위에서 선택한 데이터 소스에서 대상 Athena 데이터베이스를 선택하세요.

1.  작업 그룹을 선택하세요. 기본값은 **기본**입니다.

1.  작업 그룹에 출력 위치가 미리 구성되어 있지 않은 경우 쿼리 결과에 사용할 S3 버킷 및 폴더를 지정합니다. 예: `s3://grafana-athena-plugin-test-data/query-result-output/ ` 

1.  **저장 및 테스트**를 선택하세요.

# 수동으로 Athena 데이터 소스 추가


## 사전 조건

+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)가 사용자 환경에 설치 및 구성되어 있습니다.
+  계정에서 **Amazon Athena**에 액세스할 수 있습니다.

**수동으로 Athena 데이터 소스를 추가하려면 다음을 수행합니다.**

1.  Grafana 콘솔 사이드 메뉴에서 **구성**(톱니) 아이콘에서 일시 중지하고 **데이터 소스**를 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

1. **AWS Athena** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에서 **Athena**를 입력하기 시작하면 해당 항목을 찾는 데 도움이 됩니다.

1.  **연결 세부 정보** 메뉴에서 인증 제공업체를 구성합니다(권장: **워크스페이스 IAM 역할 **).

1.  대상 Athena 데이터 소스, 데이터베이스 및 작업 그룹을 선택하세요.

   새 Athena 계정을 생성하려면 [Athena 시작하기](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)의 지침을 따릅니다.

1.  작업 그룹에 출력 위치가 미리 구성되어 있지 않은 경우 쿼리 결과에 사용할 S3 버킷 및 폴더를 지정합니다. 예를 들어 `s3://grafana-athena-plugin-test-data/query-result-output/ `입니다.

1.  **저장 및 테스트**를 선택하세요.

다음은 **Athena 세부 정보** 설정 예제입니다.

![\[Athena 세부 정보 예제\]](http://docs.aws.amazon.com/ko_kr/grafana/latest/userguide/images/athena.png)


# Athena 데이터 소스 사용


## IAM 정책


 Grafana는 Athena 지표를 읽을 수 있도록 IAM을 통해 부여된 권한이 필요합니다. 역할 수임을 위해 이러한 권한을 IAM 역할에 연결하고 Grafana의 기본 제공 지원을 활용할 수 있습니다. Grafana에 데이터 소스를 추가하기 전에 역할에 [필요한 정책을 구성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)해야 합니다. 데이터 소스를 추가하려면 관리자 또는 편집자 역할이 필요합니다. 기본 제공 Amazon Grafana Athena 액세스 정책은 [AWS 관리형 정책: AmazonGrafanaAthenaAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaAthenaAccess) 섹션에 정의되어 있습니다.

## Athena 데이터 쿼리


Athena 데이터 소스는 표준 SQL 쿼리 편집기를 제공합니다. Amazon Managed Grafana에는 더 복잡한 시간 쿼리를 작성하는 데 도움이 되는 몇 가지 매크로가 포함되어 있습니다.

매크로


|  매크로  |  설명  |  예제  |  출력 예제  | 
| --- | --- | --- | --- | 
|  \$1\$1\$1dateFilter(column)  |  \$1\$1\$1dateFilter는 패널의 날짜 범위를 기반으로 데이터(column 사용)를 선택하는 조건부 필터를 생성합니다. |  \$1\$1\$1date(my\$1date)  | my\$1date BETWEEN date '2017-07-18' AND date '2017-07-18' | 
|  \$1\$1\$1parseTime(column,format)  |  \$1\$1\$1parseTime은 varchar을 지정된 형식의 타임스탬프로 캐스팅합니다. |  \$1\$1\$1parseTime(eventtime, 'yyyy-MM-dd''T''HH:mm:ss''Z')  | parse\$1datetime(time,'yyyy-MM-dd''T''HH:mm:ss''Z') | 
|  \$1\$1\$1timeFilter(column,format)  |  \$1\$1\$1timeFilter는 패널의 시간 범위에 따라 데이터(column 사용)를 필터링하는 조건을 생성합니다. 두 번째 인수는 선택적으로 varchar에서 특정 형식의 타임스탬프로 열을 구문 분석하는 데 사용됩니다. | \$1\$1\$1timeFilter(time, 'yyyy-MM-dd HH:mm:ss') | TIMESTAMP time BETWEEN TIMESTAMP '2017-07-18T11:15:52Z' AND TIMESTAMP '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeFrom()  |  \$1\$1\$1timeFrom은 패널 범위의 현재 시작 시간을 따옴표로 묶어 출력합니다. | \$1\$1\$1timeFrom() | TIMESTAMP '2017-07-18 11:15:52' | 
|  \$1\$1\$1timeTo()  |  \$1\$1\$1timeTo 는 패널 범위의 현재 종료 시간을 따옴표로 묶어 출력합니다. | \$1\$1\$1timeTo() | TIMESTAMP '2017-07-18 11:15:52' | 
|  \$1\$1\$1timeGroup(column, '1m', format)  |  \$1\$1\$1timeGroup 은 그래프의 기간마다 1개의 포인트만 존재하도록 타임스탬프를 그룹화합니다. 세 번째 인수는 선택적으로 varchar에서 특정 형식의 타임스탬프로 열을 구문 분석하는 데 사용됩니다. | \$1\$1\$1timeGroup(time,'5m','yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z') | FROM\$1UNIXTIME(FLOOR(TO\$1UNIXTIME(parse\$1datetime(time,'yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z'))/300)\$1300) | 
|  \$1\$1\$1table  |   \$1\$1\$1table은 테이블 선택기에서 선택한 테이블을 반환합니다. | \$1\$1\$1table | my\$1table | 
|  \$1\$1\$1column  |  \$1\$1\$1column은 열 선택기에서 선택한 열을 반환합니다(이때 테이블 필요). | \$1\$1\$1column  | col1  | 

**시각화**

Athena에서 대부분의 쿼리는 테이블 시각화로 가장 잘 표현됩니다. 쿼리는 테이블에 반환 데이터를 표시합니다. 쿼리할 수 있는 경우 테이블로 표시할 수 있습니다.

이 예제에서는 테이블 시각화에 대한 결과를 반환합니다.

```
SELECT {column_1}, {column_2} FROM {table};
```

**시계열/그래프 시각화**

시간 기록 및 그래프 시각화의 경우 다음을 수행해야 합니다.
+ `date` 또는 `datetime` 유형의 열을 선택합니다. `date` 열은 오름차순이어야 합니다(`ORDER BY column ASC` 사용).
+ 숫자 열도 선택합니다.

**쿼리 검사**

Amazon Managed Grafana는 Athena에서 지원하지 않는 매크로를 지원합니다. 즉, Athena에 직접 복사하여 붙여넣을 때 쿼리가 작동하지 않을 수 있습니다. Athena에서 직접 작동하는 전체 보간 쿼리를 보려면 **쿼리 검사기** 버튼을 클릭합니다. 전체 쿼리는 **쿼리** 탭 아래에 표시됩니다.

## 템플릿 및 변수


Athena 쿼리 변수 추가에 대한 자세한 내용은 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. Athena 데이터 소스를 사용 가능한 쿼리의 데이터 소스로 사용합니다.

Athena 테이블에서 쿼리된 모든 값을 변수로 사용할 수 있습니다. 너무 많은 값을 선택하지 마세요. 그러면 성능 문제가 발생할 수 있습니다.

변수를 생성한 후 [변수 구문](templates-and-variables.md#variable-syntax)을 사용하여 Athena 쿼리에 사용할 수 있습니다. 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

## Annotations


[Annotations](dashboard-annotations.md)을 사용하면 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 패널을 선택하거나 **대시보드** 메뉴 **주석** 보기를 사용해 주석 쿼리를 추가하여 주석을 추가할 수 있습니다.

주석을 자동으로 추가하는 예제 쿼리:

```
SELECT
  time as time,
  environment as tags,
  humidity as text
FROM
  tableName
WHERE
  $__dateFilter(time) and humidity > 95
```

다음 표에서 주석을 렌더링하는 데 사용할 수 있는 열에 대한 설명을 보여줍니다.


|  이름  |  설명  | 
| --- | --- | 
|  Time  |  날짜/시간 필드의 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  Timeend  |  종료 날짜/시간 필드의 선택적 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. (Grafana v6.6 이상)  | 
|  Text  |  이벤트 설명 필드. | 
|  Tags  |  이벤트 태그에 대해 쉼표로 구분된 문자열로 사용할 선택적 필드 이름. | 

## 비동기 쿼리 데이터 지원


Amazon Managed Grafana에서 Athena 쿼리는 제한 시간 초과를 방지하기 위해 비동기 방식으로 처리됩니다. 비동기 쿼리는 별도의 요청을 사용하여 쿼리를 시작한 다음, 진행 상황을 확인하고 마지막으로 결과를 가져옵니다. 이렇게 하면 장기 실행되는 쿼리의 제한 시간 초과가 방지됩니다.

## 쿼리 결과 재사용


이전 쿼리의 결과를 재사용하여 쿼리 성능을 개선할 수 있습니다. 쿼리 재사용을 활성화하려면 활성화 옵션은 쿼리 편집기의 **쿼리 결과 재사용** 섹션에 있습니다. 쿼리를 재사용하려는 각 쿼리에 대해 이 작업을 수행해야 합니다.

**참고**  
이 기능을 사용하려면 Athena 인스턴스에 엔진 버전 3이 있어야 합니다. 자세한 내용은 *Amazon Athena 사용 설명서*의 [Athena 엔진 버전 변경](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html)을 참조하세요.

# Amazon Redshift 데이터 소스에 연결
Amazon Redshift

**참고**  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

**참고**  
 이 설명서에서는 사용자가 Amazon Redshift 데이터 소스를 사용하기 전에 Amazon Redshift 서비스에 익숙하다고 가정합니다.

Amazon Managed Grafana를 사용하면 Grafana 워크스페이스 콘솔의 데이터 소스 구성 옵션을 사용하여 Amazon Redshift를 AWS 데이터 소스로 추가할 수 있습니다. 이 기능은 기존 Amazon Redshift 계정을 검색하여 Amazon Redshift를 데이터 소스로 추가하는 작업을 간소화하고 Amazon Redshift에 액세스하는 데 필요한 인증 자격 증명의 구성을 관리합니다. 이 방법을 사용하여 인증을 설정하고 Amazon Redshift를 데이터 소스로 추가하거나 자체 관리형 Grafana 서버에서와 동일한 방법을 사용하여 데이터 소스와 필요한 인증 자격 증명을 수동으로 설정할 수 있습니다.

Amazon Managed Grafana에서 Amazon Redshift에 액세스하기 위한 사전 조건이 있습니다. Amazon Redshift 데이터 소스 사용과 관련된 사전 조건은 [사전 조건](Redshift-prereq.md) 섹션을 참조하세요.

# 사전 조건


Amazon Managed Grafana에 관리 AWS 형 정책을 사용하려면 Amazon Redshift 데이터 소스를 구성하기 전에 다음 작업을 완료합니다.
+ `GrafanaDataSource: true`를 사용하여 Amazon Redshift 클러스터에 태그를 지정합니다. 그렇지 않으면 액세스할 수 없습니다.
+ 다음 상호 배타적 방법 중 하나로 데이터베이스 자격 증명을 생성합니다.
  + 기본 메커니즘(임시 자격 증명 옵션)을 사용하여 Redshift 데이터베이스에 대해 인증하려면 `redshift_data_api_user`라는 데이터베이스 사용자를 생성해야 합니다.
  + Secrets Manager의 자격 증명을 사용하려면 보안 암호에 `RedshiftQueryOwner: true`로 태그를 지정해야 합니다. 자세한 내용은 이 설명서의 [Amazon Managed Grafana의 자격 증명 기반 정책 예제](https://docs.aws.amazon.com/grafana/latest/userguide/security_iam_id-based-policy-examples.html)를 참조하세요.

# AWS 데이터 소스 구성을 사용하여 Amazon Redshift를 데이터 소스로 추가


# AWS 데이터 소스 구성을 사용하여 Amazon Redshift를 데이터 소스로 추가하려면


1.  사용자 역할이 관리자 또는 편집자인지 확인합니다.

1.  [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)의 Amazon Managed Grafana 콘솔에서 작업할 워크스페이스를 선택하세요.

1. 이 워크스페이스를 생성할 때이 워크스페이스에 서비스 관리형 권한을 사용하도록 선택하지 않은 경우 Grafana 워크스페이스 콘솔에서 AWS 데이터 소스 구성 옵션을 사용할 수 있도록 적절한 IAM 역할 및 정책이 활성화되도록 고객 관리형 권한을 사용하여 서비스 관리형 권한을 사용하는 것으로 변경합니다. 이를 수행하려면 **IAM 역할** 옆의 편집 아이콘을 선택하고 **서비스 관리형**, **변경 사항 저장**을 선택하세요. 자세한 내용은 [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md) 단원을 참조하십시오.

1. **데이터 소스** 탭을 선택하세요. 그런 다음, **Amazon Redshift**의 확인란을 선택하고 **작업**, **서비스 관리형 정책 활성화**를 선택하세요.

1. **데이터 소스** 탭을 다시 선택한 다음, **Amazon Redshift** 행에서 **Grafana에서 구성**을 선택하세요.

1. 필요한 경우 IAM Identity Center를 사용하여 Grafana 워크스페이스 콘솔에 로그인합니다.

1. Grafana 워크스페이스 콘솔의 왼쪽 탐색 표시줄에서 하단의 AWS 아이콘(두 개가 있음)을 선택한 다음, **Redshift**를 선택하세요.

1. Amazon Redshift 데이터 소스에서 쿼리할 기본 리전을 선택한 다음, 원하는 계정을 선택하고 **데이터 소스 추가**를 선택하세요.

1.  단계에 따라 [**연결 세부 정보** 설정](Redshift-config.md#Redshift-connection-details)에서 **연결 세부 정보**를 구성하세요.

# 수동으로 Amazon Redshift 데이터 소스 추가


## 사전 조건

+  계정에서 **Amazon Redshift**에 액세스할 수 있습니다.

**Amazon Redshift 데이터 소스를 추가하려면 다음을 수행하세요.**

1. [AmazonRedshiftAccessPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess)를 워크스페이스 사용자 역할에 연결하세요.

1. 사용자 역할이 관리자 또는 편집자인지 확인하세요.

1.  [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)의 Amazon Managed Grafana 콘솔에서 작업할 워크스페이스를 선택하세요.

1.  Grafana 콘솔 사이드 메뉴에서 **구성**(톱니) 아이콘에서 일시 중지하고 **데이터 소스**를 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

1. **AWS Redshift** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에서 **Redshift**를 입력하기 시작하면 해당 항목을 찾는 데 도움이 됩니다.

1. 그러면 **연결 세부 정보** 페이지가 열립니다. [**연결 세부 정보** 설정](Redshift-config.md#Redshift-connection-details)을 구성하는 단계를 수행하세요.

# Amazon Redshift 구성


 Amazon Redshift 데이터 소스를 워크스페이스에 추가한 후 Amazon Redshift 설정을 다음과 같이 구성합니다.

## 사전 조건

+  계정에서 **Amazon Redshift**에 액세스할 수 있습니다.

## **연결 세부 정보** 설정


**연결 세부 정보 설정 구성**

1.  **연결 세부 정보** 메뉴에서 인증 제공업체(권장: **Workspace IAM 역할**)를 선택하세요.

1.  쿼리하려는 **기본 리전**을 선택하세요.

## **인증** 설정


****인증** 설정 구성**

1.  **인증** 메뉴에서 **임시 자격 증명**을 선택하거나 **AWS Secrets Manager** 탭을 액세스 자격 증명 제공업체로 선택하세요. 임시 자격 증명 및 AWS Secrets Manager에 대한 자세한 내용은 섹션을 참조하세요. [AWS 관리형 정책: AmazonGrafanaRedshiftAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess) 

1.  기본적으로 **임시 자격 증명** 정보를 선택하는 경우 아래 단계를 따르세요. **AWS Secrets Manager**를 선택하는 경우 입력 필드에 **AWS Secrets Manager** 자격 증명을 입력합니다.

1.  Amazon Redshift에서 생성한 클러스터의 **클러스터 식별자**를 선택하세요.

   Redshift 클러스터에 대한 자세한 내용은 [Redshift 연결](https://docs.aws.amazon.com/redshift/latest/gsg/connection.html)을 참조하세요.

1.  대상 Redshift 데이터베이스를 선택하세요.

1.  위 클러스터에 대해 생성한 데이터베이스 사용자를 선택하세요.

1.  **저장 및 테스트**를 선택합니다.

다음은 **임시 자격 증명** 설정 예제입니다.

![\[임시 자격 증명 예제\]](http://docs.aws.amazon.com/ko_kr/grafana/latest/userguide/images/redshift.png)


다음은 **AWS Secrets Manager** 메뉴 예제입니다.

![\[Secrets Manager 예제\]](http://docs.aws.amazon.com/ko_kr/grafana/latest/userguide/images/secretsmanager.png)


# Amazon Redshift Data 데이터 소스 사용


## IAM 정책


 Grafana는 Redshift 지표를 읽을 수 있도록 IAM을 사용하여 부여된 권한이 필요합니다. 역할 수임을 위해 이러한 권한을 IAM 역할에 연결하고 Grafana의 기본 제공 지원을 활용할 수 있습니다. 기본 제공 Amazon Grafana Redshift 액세스 정책은 [AWS 관리형 정책: AmazonGrafanaRedshiftAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess) 섹션에 정의되어 있습니다.

## Amazon Redshift 데이터 쿼리


 Amazon Redshift 데이터 소스는 표준 SQL 쿼리 편집기를 제공합니다. Amazon Managed Grafana에는 더 복잡한 시간 쿼리를 작성하는 데 도움이 되는 몇 가지 매크로가 포함되어 있습니다.

매크로


|  매크로  |  설명  |  출력 예시  | 
| --- | --- | --- | 
|  \$1\$1\$1timeEpoch(column)  |  \$1\$1\$1timeEpoch는 UNIX 타임스탬프로 변환하고 열 이름을 시간으로 바꾸는 표현식으로 대체됩니다. |  UNIX\$1TIMESTAMP(dateColumn) as "time"  | 
|  \$1\$1\$1timeFilter(column)  |  \$1\$1\$1timeFilter는 패널의 시간 범위에 따라 데이터(column 사용)를 필터링하는 조건을 생성함  |  time BETWEEN '2017-07-18T11:15:52Z' AND '2017-07-18T11:15:52Z'  | 
|  \$1\$1\$1timeFrom()  |  \$1\$1\$1timeFrom은 패널 범위의 현재 시작 시간을 따옴표로 묶어 출력함  | '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeTo()  |  \$1\$1\$1timeTo는 패널 범위의 현재 종료 시간을 따옴표로 묶어 출력함  | '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeGroup(column, '1m')  |  \$1\$1\$1timeGroup은 그래프의 기간마다 1개의 포인트만 존재하도록 타임스탬프를 그룹화함  | floor(extract(epoch from time)/60)\$160 AS "time" | 
|  \$1\$1\$1schema  |  \$1\$1\$1schema 에서는 선택한 스키마를 사용합니다. | public | 
|  \$1\$1\$1table  |   \$1\$1\$1table은 지정된 \$1\$1\$1schema에서 테이블을 출력함(기본적으로 퍼블릭 스키마 사용)  | sales | 
|  \$1\$1\$1column  |  \$1\$1\$1column은 현재 \$1\$1\$1table에서 열을 출력함  | date  | 
|  \$1\$1\$1unixEpochFilter(column)  |  \$1\$1\$1unixEpochFilter는 지정된 열 이름을 사용하여 시간 범위 필터로 대체됨(Unix 타임스탬프로 시간이 표시됨)  |   column >= 1624406400 AND column <= 1624410000  | 
|  \$1\$1\$1unixEpochGroup(column)  |  \$1\$1\$1unixEpochGroup은 \$1\$1\$1timeGroup과 동일하지만 시간이 Unix 타임스탬프로 저장됨  | floor(time/60)\$160 AS "time" | 

**시각화**

Redshift에서 대부분의 쿼리는 테이블 시각화로 가장 잘 표현됩니다. 모든 쿼리는 테이블에서 데이터를 표시합니다. 쿼리할 수 있는 경우 테이블에 넣을 수 있습니다.

이 예제에서는 테이블 시각화에 대한 결과를 반환합니다.

```
SELECT {column_1}, {column_2} FROM {table};
```

**시계열 및 그래프 시각화 **

시계열 및 그래프 시각화에는 몇 가지 요구 사항이 있습니다.
+ `date` 또는 `datetime` 유형의 열을 선택해야 합니다.
+ `date` 열은 오름차순이어야 합니다(`ORDER BY column ASC` 사용).
+ 숫자 열을 선택해야 합니다.

보다 합리적인 그래프를 만들려면 `$__timeFilter` 및 `$__timeGroup` 매크로를 사용해야 합니다.

**시계열 쿼리 예제:**

```
SELECT
  avg(execution_time) AS average_execution_time,
  $__timeGroup(start_time, 'hour'),
  query_type
FROM
  account_usage.query_history
WHERE
  $__timeFilter(start_time)
group by
  query_type,start_time
order by
  start_time,query_type ASC;
```

**채우기 모드**

또한 Grafana는 일부 기본값이 있는 값 없이 프레임을 자동 완성합니다. 이 값을 구성하려면 쿼리 편집기에서 **값 채우기**를 변경합니다.

**쿼리 검사**

Grafana는 Redshift에서 지원하지 않는 매크로를 지원하므로 Redshift에 직접 복사하여 붙여넣을 수 있는 완전히 렌더링된 쿼리가 쿼리 검사기에 표시됩니다. 보간된 전체 쿼리를 보려면 **쿼리 검사기** 메뉴를 선택합니다. 그러면 전체 쿼리가 **쿼리** 탭에 표시됩니다.

## 템플릿 및 변수


새 Redshift 쿼리 변수를 추가하는 방법에 대한 자세한 내용은 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. Redshift 데이터 소스를 사용 가능한 쿼리의 데이터 소스로 사용합니다.

Amazon Redshift 테이블에서 쿼리한 모든 값을 변수로 사용할 수 있습니다. 너무 많은 값을 선택하지 마세요. 그러면 성능 문제가 발생할 수 있습니다.

변수를 생성한 후 [변수 구문](templates-and-variables.md#variable-syntax)을 사용하여 Redshift 쿼리에 사용할 수 있습니다. 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

## Annotations


[Annotations](dashboard-annotations.md)을 사용하면 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 패널을 선택하거나 **대시보드** 메뉴에서 연 **주석** 보기를 사용해 주석 쿼리를 추가하여 주석을 추가할 수 있습니다.

주석을 자동으로 추가하는 예제 쿼리:

```
SELECT
  time as time,
  environment as tags,
  humidity as text
FROM
  $__table
WHERE
  $__timeFilter(time) and humidity > 95
```

다음 표는 주석을 렌더링하는 데 고려하는 열의 값을 나타냅니다.


|  이름  |  설명  | 
| --- | --- | 
|  Time  |  날짜 또는 시간 필드의 이름. 기본 SQL 날짜 또는 시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  Timeend  |  종료 날짜 또는 시간 필드의 선택적 이름. 기본 SQL 날짜 또는 시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  Text  |  이벤트 설명 필드. | 
|  Tags  |  이벤트 태그에 대해 쉼표로 구분된 문자열로 사용할 선택적 필드 이름. | 

# AWS X-Ray 데이터 소스에 연결
AWS X-Ray

**참고**  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

 를 데이터 소스 AWS X-Ray 로 추가한 다음 대시보드를 빌드하거나 X-Ray로 탐색을 사용하여 트레이스, 분석 또는 인사이트를 살펴봅니다.

 Amazon Managed Grafana를 사용하면 Grafana 워크스페이스 콘솔의 데이터 소스 구성 옵션을 사용하여 X-Ray를 AWS 데이터 소스로 추가할 수 있습니다. 이 기능은 기존 X-Ray 계정을 검색하여 X-Ray를 데이터 소스로 추가하는 작업을 간소화하고 X-Ray에 액세스하는 데 필요한 인증 자격 증명의 구성을 관리합니다. 이 방법을 사용하여 인증을 설정하고 X-Ray를 데이터 소스로 추가하거나 자체 관리형 Grafana 서버에서와 동일한 방법을 사용하여 데이터 소스와 필요한 인증 자격 증명을 수동으로 설정할 수 있습니다.

**Topics**
+ [

# AWS 데이터 소스 구성을 사용하여 X-Ray를 데이터 소스로 추가
](xray-adding-AWS-config.md)
+ [

# 수동으로 X-Ray 데이터 소스 추가
](xray-add-the-data-source.md)
+ [

## X-Ray 설정
](#xray-settings)
+ [

# X-Ray 데이터 소스 사용
](xray-using.md)

# AWS 데이터 소스 구성을 사용하여 X-Ray를 데이터 소스로 추가


 AWS 데이터 소스 구성을 사용하려면 먼저 Amazon Managed Grafana 콘솔을 사용하여 계정 또는 전체 조직 단위에서 X-Ray 리소스를 읽는 데 필요한 IAM 정책을 워크스페이스에 부여하는 서비스 관리형 IAM 역할을 활성화합니다. 그런 다음, Amazon Managed Grafana 워크스페이스 콘솔을 사용하여 X-Ray를 데이터 소스로 추가합니다.

**AWS 데이터 소스 구성을 사용하여 X-Ray를 데이터 소스로 추가하려면**

1. [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)에서 Amazon Managed Grafana 콘솔을 엽니다.

1. 페이지 왼쪽 상단에서 메뉴 아이콘을 선택한 다음, **모든 워크스페이스**를 선택합니다.

1. 워크스페이스 이름을 선택하세요.

1. 이 워크스페이스를 생성할 때이 워크스페이스에 서비스 관리형 권한을 사용하도록 선택하지 않은 경우 Grafana 워크스페이스 콘솔에서 AWS 데이터 소스 구성 옵션을 사용할 수 있도록 적절한 IAM 역할 및 정책이 활성화되도록 고객 관리형 권한을 사용하여 서비스 관리형 권한을 사용하는 것으로 변경합니다. 이를 수행하려면 **IAM 역할** 옆의 편집 아이콘을 선택하고 **서비스 관리형**, **변경 사항 저장**을 선택하세요. 자세한 내용은 [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md) 단원을 참조하십시오.

1. **데이터 소스** 탭을 선택하세요. 그런 다음 **AWS X-Ray**의 확인란을 선택하고 **작업**, **서비스 관리형 정책 활성화**를 선택하세요.

1. **데이터 소스** 탭을 다시 선택한 다음, **AWS X-Ray** 행에서 **Grafana에서 구성**을 선택하세요.

1. 필요한 경우 IAM Identity Center를 사용하여 Grafana 워크스페이스 콘솔에 로그인합니다.

1. Grafana 워크스페이스 콘솔의 왼쪽 탐색 모음에서 AWS 아이콘을 선택한 다음**AWS services**, **X-Ray**를 선택합니다.

1. X-Ray 데이터 소스가 쿼리할 기본 리전을 선택하고 계정을 선택한 다음, **데이터 소스 추가**를 선택하세요.

# 수동으로 X-Ray 데이터 소스 추가


**수동으로 X-Ray 데이터 소스를 추가하는 방법**

1.  Grafana 콘솔 사이드 메뉴에서 **구성**(톱니) 아이콘에서 일시 중지하고 **데이터 소스**를 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

1. **X-Ray** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에 **X-Ray**를 찾을 수 있습니다.

## X-Ray 설정



|  이름  |  설명  | 
| --- | --- | 
|  이름  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  기본값  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  기본 리전  |  쿼리 편집기에서 리전을 설정하는 데 사용됩니다(쿼리별로 변경 가능). | 
|  인증 제공업체  |  자격 증명을 가져올 제공업체를 지정합니다. | 
|  자격 증명 프로파일 이름  |  사용할 프로파일의 이름을 지정합니다(\$1/.aws/credentials 파일을 사용하는 경우). 기본값을 사용하려면 비워 둡니다. | 
|  역할 ARN 수임  |  수임할 역할의 ARN을 지정합니다. | 
|  외부 ID  |  외부 ID로 생성된 다른 계정에서 역할을 수임하는 경우 여기에 외부 ID를 지정합니다. | 

### Authentication


이 섹션에서는 X-Ray 데이터 소스에 대해 사용할 수 있는 다양한 유형의 인증을 다룹니다.

#### IAM 역할


 현재 X-Ray에 대한 모든 액세스는 공식 AWS SDK를 사용하여 Grafana 워크스페이스 백엔드에서 서버 측에서 수행됩니다. Grafana 서버가 실행 중인 경우 IAM 역할을 사용할 AWS수 있으며 인증이 자동으로 처리됩니다.

 자세한 내용은 [IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)을 참조하세요.

### IAM 정책


 Grafana에는 X-Ray 데이터 및 EC2 태그/인스턴스/리전을 읽을 수 있도록 IAM을 통해 부여된 권한이 필요합니다. 이러한 권한을 IAM 역할에 연결하고 역할 수임을 위해 기본 제공 Grafana 지원을 사용할 수 있습니다.

 다음 코드 예제에서는 최소 정책을 보여줍니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "xray:BatchGetTraces",
                "xray:GetTraceSummaries",
                "xray:GetTraceGraph",
                "xray:GetGroups",
                "xray:GetTimeSeriesServiceStatistics",
                "xray:GetInsightSummaries",
                "xray:GetInsight",
                "ec2:DescribeRegions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

#### 자격 AWS 증명 예


 Amazon Managed Grafana에서는 자격 증명 파일 방법을 사용할 수 없습니다.

# X-Ray 데이터 소스 사용


## 쿼리 편집기


 편집기에서 가장 중요한 필드는 쿼리 유형입니다. 다음과 같은 네 가지 쿼리 유형이 있습니다.
+  트레이스 목록(의 트레이스 AWS) 
+  추적 통계 
+  추적 분석(의 분석 AWS) 
+  인사이트 

## 추적 목록


 추적 목록 유형을 사용하면 테이블에 표시되는 추적을 검색할 수 있습니다. 첫 번째 열에서 추적 ID를 선택하면 오른쪽에 추적이 열립니다. 편집기에서 쿼리 필드를 확인합니다. 쿼리를 작성하거나 표현식을 필터링하거나 추적 보기에 표시되는 단일 추적 ID를 삽입할 수 있습니다. 필터 표현식에 대한 자세한 내용은 [AWS X-Ray 설명서](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-filters.html)를 참조하세요.

**참고**  
 추적 목록에는 처음 1,000개의 추적만 표시됩니다.

## 추적 통계


 추적 통계에서는 오류, 결함, 스로틀, 성공 및 총 개수에 대한 정보를 보여주는 그래프 및 테이블을 볼 수 있습니다. 쿼리 편집기의 열 필드를 사용하여 지정된 열만 볼 수 있습니다.

## Trace Analytics


 추적 분석에서 다음 테이블을 시각화할 수 있습니다.
+  근본 원인 
  +  응답 시간 
    +  근본 원인 서비스(경로의 마지막 서비스) 
    +  경로(여러 경로) 
  +  오류 
    +  근본 원인 서비스(경로의 마지막 서비스) 
    +  경로 
    +  오류 메시지 
  +  결함 
    +  근본 원인 서비스(경로의 마지막 서비스) 
    +  경로 
    +  오류 메시지 
+  최종 사용자 영향 
+  URL 
+  HTTP 상태 코드 

## 인사이트


 인사이트에서는 인사에트에 대한 요약 테이블을 볼 수 있습니다. InsightId를 선택하면 AWS 관리 콘솔로 이동합니다.

## 알림


 X-Ray 쿼리는 숫자 데이터를 반환할 수 있으므로 알림이 지원됩니다. 자세한 내용은 [Grafana 알림](alerts-overview.md) 단원을 참조하십시오.

# Azure Monitor 데이터 소스에 연결
Azure 모니터

 Azure Monitor 데이터 소스는 Azure 클라우드에서 여러 서비스를 지원합니다.
+  **Azure Monitor 서비스**는 Azure 리소스를 모니터링하기 위한 단일 소스를 제공하는 플랫폼 서비스입니다. 자세한 내용은 [Azure Monitor 서비스 쿼리](#query-the-azure-monitor-service) 단원을 참조하십시오.
+  **Application Insights 서버**는 여러 플랫폼의 웹 개발자를 위한 확장 가능한 Application Performance Management(APM) 서비스이며 라이브 웹 애플리케이션을 모니터링하는 데 사용할 수 있습니다. 여기에서 성능 이상은 자동으로 감지됩니다. 자세한 내용은 [Application Insights Analytics 서비스 쿼리](#query-the-application-insights-analytics-service) 단원을 참조하십시오.
+  **Azure Log Analytics**(또는 Azure Logs)를 사용하면 Azure Monitor에서 수집한 로그 데이터에 액세스할 수 있습니다. 자세한 내용은 [Azure Log Analytics 서비스 쿼리](#querying-the-azure-log-analytics-service) 단원을 참조하십시오.
+  **Application Insights Analytics 서비스**를 사용하여 Azure Log Analytics에서 사용한 것과 동일한 쿼리 언어를 통해 [Application Insights 데이터](https://docs.microsoft.com/en-us/azure/azure-monitor/app/analytics)를 쿼리합니다. 자세한 내용은 [Application Insights Analytics 서비스 쿼리](#query-the-application-insights-analytics-service) 단원을 참조하십시오.

## 데이터 소스 추가


 데이터 소스는 네 개의 서로 다른 서비스의 지표에 액세스할 수 있습니다. 사용하는 서비스에 대한 액세스를 구성할 수 있습니다. Azure Entra ID에서 설정한 경우 여러 서비스에 하나의 자격 증명을 사용할 수도 있습니다.
+  [Microsoft Entra 앱 등록 및 서비스 위탁자 생성](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal) 

1.  Grafana 기본 메뉴에서 액세스하면 새로 설치된 데이터 소스를 데이터 소스 섹션 내에 즉시 추가할 수 있습니다. 그런 다음, 오른쪽 상단의 **데이터 소스 추가** 버튼을 선택하세요. Azure Monitor 데이터 소스는 데이터 소스 목록의 클라우드 섹션에서 선택할 수 있습니다.

1.  이름 필드에 Grafana는 데이터 소스의 이름을 자동으로 입력합니다(`Azure Monitor` 또는 `Azure Monitor - 3`과 같음). 여러 데이터 소스를 구성하는 경우 보다 설명을 포함하는 이름으로 변경하세요.

1.  Azure Monitor를 사용하는 경우 Azure 포털에서 4개의 정보가 필요합니다(자세한 지침은 앞에서 제공된 링크 참조).
   +  **테넌트 ID**(Azure Entra ID, 속성, 디렉터리 ID) 
   +  **클라이언트 ID**(Azure Entra ID, 앱 등록, 앱 선택, 애플리케이션 ID) 
   +  **클라이언트 암호**(Azure Entra ID, 앱 등록, 앱 선택, 키) 
   +  **기본 구독 ID**(구독, 구독 선택, 개요, 구독 ID) 

1.  이 네 가지 항목을 Azure Monitor API 세부 정보 섹션의 필드에 붙여넣으세요.
   +  구독 ID는 쿼리별로 변경할 수 있습니다. 데이터 소스를 저장하고 페이지를 새로 고쳐 지정된 클라이언트 ID에 대해 사용할 수 있는 구독 목록을 확인하세요.

1.  Azure Log Analytics 서비스도 사용하는 경우 이러한 두 구성 값을 지정하거나 이전 단계에서의 클라이언트 ID 및 보안 암호를 재사용해야 합니다.
   +  클라이언트 ID(Azure Entra ID, 앱 등록, 앱 선택, 애플리케이션 ID) 
   +  클라이언트 보안 암호(Azure Entra ID, 앱 등록, 앱 선택, 키, 키 생성, 클라이언트 암호 사용) 

1.  Application Insights를 사용하는 경우 Azure 포털의 두 가지 정보가 필요합니다(자세한 지침은 앞에서 제공된 링크 참조).
   +  애플리케이션 ID 
   +  API 키 

1.  Application Insights API 세부 정보 섹션의 해당 필드에 이 두 항목을 붙여넣으세요.

1.  **저장 및 테스트** 버튼을 선택하여 구성 세부 정보가 올바른지 테스트하세요.

 또는 4단계에서 새 Azure Entra ID 앱을 생성하는 경우 [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest)를 사용하세요.

```
az ad sp create-for-rbac -n "http://localhost:3000"
```

## 서비스 선택


 패널의 쿼리 편집기에서 Azure Monitor 데이터 소스를 선택한 후 첫 번째 단계는 서비스를 선택하는 것입니다. 네 가지 옵션이 있습니다.
+  `Azure Monitor` 
+  `Application Insights` 
+  `Azure Log Analytics` 
+  `Insights Analytics` 

 쿼리 편집기는 선택한 옵션에 따라 변경됩니다. Azure Monitor가 기본값입니다.

## Azure Monitor 서비스 쿼리


 Azure Monitor 서비스는 실행하는 모든 Azure 서비스에 대한 지표를 제공합니다. Azure의 애플리케이션이 어떻게 수행되는지 이해하고 애플리케이션에 영향을 미치는 문제를 사전에 찾는 데 도움이 됩니다.

 Azure Monitor 자격 증명으로 여러 구독에 액세스할 수 있는 경우 먼저 적절한 구독을 선택합니다.

 다음은 서비스에서 얻을 수 있는 지표 예제입니다.
+  `Microsoft.Compute/virtualMachines - Percentage CPU` 
+  `Microsoft.Network/networkInterfaces - Bytes sent` 
+  `Microsoft.Storage/storageAccounts - Used Capacity` 

 쿼리 편집기를 사용하면 이를 지원하는 지표에 대해 여러 차원을 쿼리할 수 있습니다. 여러 차원을 지원하는 지표는 지표의 **차원** 열에 하나 이상의 값이 나열된 [Azure Monitor의 지원되는 지표 목록](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/metrics-supported)에 나열된 지표입니다.

### Azure Monitor에 대한 별칭을 사용하여 범례 키 형식 지정


 Azure Monitor API의 기본 범례 형식은 다음과 같습니다.

 `metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}` 

 이 형식은 길 수 있지만 별칭을 사용하여 이 형식을 변경할 수 있습니다. **범례 형식** 필드에서 원하는 방식으로 다음 별칭을 결합할 수 있습니다.

 Azure Monitor 예제: 
+  `Blob Type: {{ blobtype }}` 
+  `{{ resourcegroup }} - {{ resourcename }}` 

### Azure Monitor의 별칭 패턴

+  `{{ resourcegroup }}` = 리소스 그룹의 값으로 대체됨 
+  `{{ namespace }}` = 네임스페이스 값으로 대체됨(예: Microsoft.Compute/virtualMachines) 
+  `{{ resourcename }}` = 리소스 이름의 값으로 대체됨 
+  `{{ metric }}` = 지표 이름으로 대체됨(예: 백분율 CPU) 
+  `{{ dimensionname }}` = *7.1 이상 기준 레거시(역호환성 지원)* 첫 번째 차원의 키/레이블로 대체됨(키/레이블로 정렬됨, 예: blobtype) 
+  `{{ dimensionvalue }}` = *7.1 이상 기준 레거시(역호환성 지원)* 첫 번째 차원의 값으로 대체됨(키/레이블로 정렬됨, 예: BlockBlob) 
+  `{{ arbitraryDim }}` = *7.1 이상에서 사용 가능* 해당 차원의 값으로 대체됩니다(예: `{{ blobtype }}`은 BlockBlob가 됨).

### Azure Monitor에 대한 템플릿 변수 생성


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 Azure Monitor 서비스는 아직 다중 값을 지원하지 않습니다. 여러 시계열(예: server1 및 server2에 대한 지표)을 시각화하려면 동일한 그래프 또는 동일한 테이블에서 볼 수 있도록 여러 쿼리를 추가합니다.

 Azure Monitor 데이터 소스 플러그인에서는 변수 편집 보기의 **쿼리** 필드에 지정할 수 있는 다음과 같은 쿼리를 제공합니다. 이를 사용하여 변수의 옵션 목록을 채울 수 있습니다.


|  이름  |  설명  | 
| --- | --- | 
|  Subscriptions()  |  구독 목록을 반환합니다. | 
|  ResourceGroups()  |  리소스 그룹 이름을 반환합니다. | 
|  ResourceGroups(12345678-aaaa-bbbb-cccc-123456789aaa)  |  지정된 구독에 대한 리소스 그룹 목록을 반환합니다. | 
|  Namespaces(aResourceGroup)  |  지정된 리소스 그룹에 대한 네임스페이스 목록을 반환합니다. | 
|  Namespaces(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup)  |  지정된 리소스 그룹 및 구독에 대한 네임스페이스 목록을 반환합니다. | 
|  ResourceNames(aResourceGroup, aNamespace)  |  리소스 이름 목록을 반환합니다. | 
|  ResourceNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace)  |  지정된 구독에 대한 리소스 이름 목록을 반환합니다. | 
|  MetricNamespace(aResourceGroup, aNamespace, aResourceName)  |  지표 네임스페이스 목록을 반환합니다. | 
|  MetricNamespace(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName)  |  지정된 구독에 대한 지표 네임스페이스 목록을 반환합니다. | 
|  MetricNames(aResourceGroup, aNamespace, aResourceName)  |  지표 이름 목록을 반환합니다. | 
|  MetricNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName)  |  지정된 구독에 대한 지표 이름 목록을 반환합니다. | 

 예시: 
+  리소스 그룹 쿼리: `ResourceGroups()` 
+  지표 이름 변수에서 전달: `Namespaces(cosmo)` 
+  템플릿 변수 체인 연결: `ResourceNames($rg, $ns)` 
+  `MetricNames(hg, Microsoft.Network/publicIPAddresses, grafanaIP)` 파라미터를 따옴표로 묶지 마세요.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿](templates-and-variables.md#templates) 섹션을 참조하세요.

### 지원되는 Azure Monitor 지표 목록


 Azure Monitor API에서 반환하는 모든 지표에 값이 있는 것은 아닙니다. 쿼리를 더 쉽게 빌드할 수 있도록 Grafana 데이터 소스에는 지원되는 Azure Monitor 지표 목록이 있으며 이때 값이 없는 지표는 무시합니다. 이 목록은 새 서비스 및 지표가 Azure 클라우드에 추가될 때 정기적으로 업데이트됩니다.

### Azure Monitor 알림


 Azure Monitor 서비스에 대한 Grafana 알림이 지원됩니다. 이는 Azure 알림 지원에 속하지 않습니다. Grafana 알림에 대한 자세한 내용은 [Grafana 알림](alerts-overview.md) 섹션을 참조하세요.

## Application Insights 서비스 쿼리


### Application Insights에 대한 별칭을 사용하여 범례 키 형식 지정


 기본 범례 형식은 다음과 같습니다.

 `metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}` 

 범례 형식 필드에서 원하는 방식으로 다음 별칭을 결합할 수 있습니다.

 Application Insights 예제: 
+  `city: {{ client/city }}` 
+  `{{ metric }} [Location: {{ client/countryOrRegion }}, {{ client/city }}]` 

### Application Insights의 별칭 패턴

+  `{{ groupbyvalue }}` = *Grafana 7.1 이상 기준 레거시(역호환성 지원)* 첫 번째 차원의 키/레이블로 대체됨(키/레이블로 정렬됨) 
+  `{{ groupbyname }}` = *Grafana 7.1 이상 기준 레거시(역호환성 지원)* 첫 번째 차원의 값으로 대체됨(키/레이블로 정렬됨, 예: BlockBlob) 
+  `{{ metric }}` = 지표 이름으로 대체됨(예: 요청/수) 
+  `{{ arbitraryDim }}` = *7.1 이상에서 사용 가능* 해당 차원의 값으로 대체됩니다(예: `{{ client/city }}`은 Chicago가 됨).

### Application Insights에 대한 표현식 필터링


 필터 필드는 OData 필터 표현식을 사용합니다.

 예시: 
+  `client/city eq 'Boydton'` 
+  `client/city ne 'Boydton'` 
+  `client/city ne 'Boydton' and client/city ne 'Dublin'` 
+  `client/city eq 'Boydton' or client/city eq 'Dublin'` 

### Application Insights에 대한 변수를 사용하여 템플릿 지정


 변수 편집 보기의 **쿼리** 필드에서 다음 쿼리 중 하나를 사용합니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿](templates-and-variables.md#templates) 섹션을 참조하세요.


|  이름  |  설명  | 
| --- | --- | 
|  AppInsightsMetricNames()  |  지표 이름 목록을 반환합니다. | 
|  AppInsightsGroupBys(aMetricName)  |  지정된 지표 이름에 대한 group by 절 목록을 반환합니다. | 

 예시: 
+  지표 이름 쿼리: `AppInsightsMetricNames()` 
+  지표 이름 변수에서 전달: `AppInsightsGroupBys(requests/count)` 
+  템플릿 변수 체인 연결: `AppInsightsGroupBys($metricnames)` 

### Application Insights 알림


 Application Insights에 대한 Grafana 알림이 지원됩니다. 이는 Azure 알림 지원에 속하지 않습니다. Grafana 알림에 대한 자세한 내용은 [Grafana 알림](alerts-overview.md) 섹션을 참조하세요.

## Azure Log Analytics 서비스 쿼리


 쿼리는 새 [Azure Log Analytics(또는 KustoDB) 쿼리 언어](https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/query-language)로 작성됩니다. Log Analytics 쿼리는 시계열 데이터 또는 테이블 데이터 형식으로 지정할 수 있습니다.

 자격 증명으로 여러 구독에 액세스할 수 있는 경우 쿼리를 입력하기 전에 먼저 적절한 구독을 선택합니다.

### 시계열 쿼리


 시계열 쿼리는 그래프 패널 및 단일 통계 패널과 같은 기타 패널에서 사용됩니다. 각 쿼리에는 datetime 열과 숫자 값 열이 하나 이상 포함되어야 합니다. 결과는 datetime 열을 기준으로 오름차순으로 정렬해야 합니다.

 다음 코드 예제에서는 시간별로 그룹화된 집계된 수를 반환하는 쿼리를 보여줍니다.

```
Perf
| where $__timeFilter(TimeGenerated)
| summarize count() by bin(TimeGenerated, 1h)
| order by TimeGenerated asc
```

 쿼리에는 숫자/datetime이 아닌 하나 이상의 열이 있을 수도 있으며, 이러한 열은 차원으로 간주되고 응답에서 레이블이 됩니다. 예를 들어 hour, Computer및 CounterName으로 그룹화되는 집계된 개수를 반환하는 쿼리가 있습니다.

```
Perf
| where $__timeFilter(TimeGenerated)
| summarize count() by bin(TimeGenerated, 1h), Computer, CounterName
| order by TimeGenerated asc
```

 추가 숫자 값 열(여러 차원을 포함하거나 포함하지 않음)을 선택할 수도 있습니다. 예를 들어 hour, Computer, CounterName, InstanceName으로 개수 및 평균값을 가져옵니다.

```
Perf
| where $__timeFilter(TimeGenerated)
| summarize Samples=count(), ["Avg Value"]=avg(CounterValue)
    by bin(TimeGenerated, $__interval), Computer, CounterName, InstanceName
| order by TimeGenerated asc
```

**참고**  
 **팁**: 이전 쿼리에서 Kusto 구문 및 `Samples=count()``["Avg Value"]=...`는 해당 열의 이름을 지정하는 데 사용되고, 두 번째 구문에서는 공백을 허용합니다. 그러면 Grafana에서 사용하는 지표의 이름이 변경됩니다. 따라서 시리즈 범례 및 테이블 열과 같은 항목이 지정한 내용과 일치합니다. 이 예제에서는 `_count` 대신 `Samples`가 표시됩니다.

### 테이블 쿼리


 테이블 쿼리는 주로 테이블 패널에서 사용되며 열 및 행 목록을 표시합니다. 이 쿼리 예제에서는 6개의 지정된 열이 있는 행을 반환합니다.

```
AzureActivity
| where $__timeFilter()
| project TimeGenerated, ResourceGroup, Category, OperationName, ActivityStatus, Caller
| order by TimeGenerated desc
```

### Log Analytics에 대한 표시 이름 형식 지정


 기본 표시 이름 형식은 다음과 같습니다.

 `metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}` 

 표시 이름 필드 옵션을 사용하여 사용자 지정할 수 있습니다.

### Azure Log Analytics 매크로


 쿼리 작성을 더 쉽게 하기 위해 Grafana에서는 쿼리의 where 절에서 사용할 수 있는 몇 가지 매크로를 제공합니다.
+  `$__timeFilter()` - Grafana 시간 선택기에서 시작 및 종료 날짜/시간이 지원되는 `TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and` `TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)`로 확장합니다.
+  `$__timeFilter(datetimeColumn)` - Grafana 시간 선택기에서 시작 및 종료 날짜/시간이 지원되는 `datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) and` `datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)`로 확장합니다.
+  `$__timeFrom()` - Grafana 선택기에서 시작 날짜 및 시간을 반환합니다. 예시: `datetime(2018-06-05T18:09:58.907Z)`.
+  `$__timeTo()` - Grafana 선택기에서 시작 날짜 및 시간을 반환합니다. 예시: `datetime(2018-06-05T20:09:58.907Z)`.
+  `$__escapeMulti($myVar)` – 잘못된 문자가 포함된 다중 값 템플릿 변수와 함께 사용됩니다. `$myVar`에 `'\\grafana-vm\Network(eth0)\Total','\\hello!'` 문자열로 다음 두 값이 있는 경우 `@'\\grafana-vm\Network(eth0)\Total', @'\\hello!'`로 확장됩니다. 단일 값 변수를 사용하는 경우 이 매크로를 사용할 필요가 없습니다. 대신 변수를 인라인으로 이스케이프 처리(`@'\$myVar'`)합니다.
+  `$__contains(colName, $myVar)` - 다중 값 템플릿 변수와 함께 사용됩니다. `$myVar`에 `'value1','value2'` 값이 있는 경우 `colName in ('value1','value2')`로 확장됩니다.

   **모두** 옵션을 사용하는 경우 **모든 옵션 포함** 확인란을 선택하고 **모든 사용자 지정 값** 필드에 **all** 값을 입력합니다. `$myVar`에 `all` 값이 있는 경우 매크로는 대신 `1 == 1`로 확장됩니다. 옵션이 많은 템플릿 변수의 경우에 이 방식을 사용하면 큰 'where..in' 절을 빌드하지 않아 쿼리 성능이 향상됩니다.

### Azure Log Analytics 기본 제공 변수


 Azure Log Analytics 쿼리에 사용할 수 있는 몇 가지 Grafana 변수도 있습니다.
+  `$__interval` - Grafana는 쿼리에서 시간별로 그룹화하는 데 사용할 수 있는 최소 시간 단위를 계산합니다. 예를 들어 `summarize count() by bin(TimeGenerated, $__interval)`과 같이 bin 함수에 사용할 수 있는 `5m` 또는 `1h`와 같은 시간 세부 단위를 반환합니다. 내부 변수에 대한 자세한 내용은 [간격 변수 추가](variables-types.md#add-an-interval-variable) 섹션을 참조하세요.

### Azure Log Analytics에 대한 변수를 사용하여 템플릿 지정


 값 목록을 반환하는 모든 Log Analytics 쿼리는 변수 편집 보기의 **쿼리** 필드에서 사용할 수 있습니다. 또한 워크스페이스 목록을 반환하는 Log Analytics에 대한 Grafana 함수도 있습니다.

 템플릿 및 템플릿 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.


|  이름  |  설명  | 
| --- | --- | 
|  workspaces()  |  기본 구독에 대한 워크스페이스 목록을 반환합니다. | 
|  workspaces(12345678-aaaa-bbbb-cccc-123456789aaa)  |  지정된 구독에 대한 워크스페이스 목록을 반환합니다(파라미터는 따옴표로 묶거나 묶지 않을 수 있음). | 

 다음 표에는 변수 쿼리 예제가 나와 있습니다.


|  Query  |  설명  | 
| --- | --- | 
|  subscriptions()  |  Azure 구독 목록을 반환합니다. | 
|  workspaces()  |  기본 구독에 대한 워크스페이스 목록을 반환합니다. | 
|  workspaces("12345678-aaaa-bbbb-cccc-123456789aaa")  |  지정된 구독에 대한 워크스페이스 목록을 반환합니다. | 
|  workspaces("\$1subscription")  |  구독 파라미터에 대한 템플릿 변수를 사용합니다. | 
|  workspace("myWorkspace").Heartbeat \$1\$1 distinct Computer  |  가상 머신 목록을 반환합니다. | 
|  workspace("\$1workspace").Heartbeat \$1\$1 distinct Computer  |  템플릿 변수가 있는 가상 머신 목록을 반환합니다. | 
|  workspace("\$1workspace").Perf \$1\$1 distinct ObjectName  |  성능 테이블의 객체 목록을 반환합니다. | 
|  workspace("\$1workspace").Perf \$1\$1 where ObjectName == "\$1object" \$1\$1 distinct CounterName  |  성능 테이블의 지표 이름 목록을 반환합니다. | 

 다음 코드 예제에서는 변수를 사용하는 시계열 쿼리를 보여줍니다.

```
Perf
| where ObjectName == "$object" and CounterName == "$metric"
| where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo()
| where  $__contains(Computer, $computer)
| summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer
| order by TimeGenerated asc
```

### Grafana 패널에서 Azure Portal의 Log Analytics 쿼리 편집기로 딩링크


 패널에서 시계열을 선택하면 **Azure Portal에서 보기**에 대한 링크가 있는 컨텍스트 메뉴가 표시됩니다. 이 링크를 선택하면 Azure Portal에서 Azure Log Analytics 쿼리 편집기가 열리고 여기의 Grafana 패널에서 쿼리가 실행됩니다.

 현재 Azure Portal에 로그인하지 않은 경우 링크를 선택하면 로그인 페이지가 열립니다. 제공된 링크는 모든 계정에 유효하지만, 계정이 쿼리에 지정된 Azure Log Analytics 워크스페이스에 대한 액세스 권한을 보유하는 경우에만 쿼리를 표시합니다.

### Azure Log Analytics 알림


 Application Insights에 대한 Grafana 알림이 지원됩니다. 이는 Azure 알림 지원에 속하지 않습니다. Grafana 워크스페이스의 알림에 대한 자세한 내용은 [Grafana 알림](alerts-overview.md) 섹션을 참조하세요.

## Application Insights Analytics 서비스 쿼리


 서비스 유형을 **Insights Analytics**로 변경하면 Log Analytics 서비스와 유사한 편집기를 사용할 수 있습니다. 또한 이 서비스는 Kusto 언어를 사용하므로 Application Insights Analytics 데이터를 쿼리하는 경우를 제외하고 데이터 쿼리 지침은 [Azure Log Analytics 서비스 쿼리](#querying-the-azure-log-analytics-service)와 동일합니다.

# Graphite 데이터 소스에 연결
Graphite

 Grafana에는 지표 공간을 빠르게 탐색하고, 함수를 추가하며, 함수 파라미터를 변경하는 등의 작업을 수행할 수 있는 고급 Graphite 쿼리 편집기가 있습니다. 이 편집기에서는 모든 유형의 Graphite 쿼리를 처리할 수 있습니다. 쿼리 참조를 사용하여 복잡한 중첩 쿼리를 처리할 수도 있습니다.

## Graphite 설정


 Graphite 설정에 액세스하려면 **구성**(톱니) 아이콘에서 일시 중지한 다음, **데이터 소스**를 선택하고 Graphite 데이터 소스를 선택합니다.


|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  URL  |  graphite-web 또는 graphite-api 설치의 HTTP 프로토콜, IP 및 포트. | 
|  Access  |  서버(기본값) = Grafana 백엔드/서버에서 URL에 액세스할 수 있어야 합니다. | 
|  Auth  |  | 
|  Basic Auth  |  데이터 소스에 대한 기본 인증을 활성화합니다. | 
|  User  |  기본 인증을 위한 사용자 이름. | 
|  Password  |  기본 인증을 위한 암호. | 
|  Custom HTTP Headers  |  헤더 추가를 선택하여 사용자 지정 HTTP 헤더를 추가합니다. | 
|  Header  |  사용자 지정 헤더 이름을 입력합니다. | 
|  Value  |  사용자 지정 헤더 값을 입력합니다. | 
|  Graphite details  |  | 
|  Version  |  Graphite 버전을 선택합니다. | 
|  Type  |  Graphite 유형을 선택합니다. | 

 액세스 모드는 데이터 소스에 대한 요청을 처리하는 방법을 제어합니다. 다른 내용이 없는 경우 서버가 선호되는 방법이어야 합니다.

### 서버 액세스 모드(기본값)


 모든 요청은 브라우저에서 Amazon Managed Grafana로 이루어집니다. 그러면 요청을 데이터 소스로 전달하여 가능한 교차 오리진 리소스 공유(CORS) 요구 사항을 우회합니다. 이 액세스 모드를 선택하면 Amazon Managed Grafana에서 URL에 액세스할 수 있어야 합니다.

### 브라우저 액세스 모드


 Amazon Managed Grafana는 Graphite 데이터 소스에 대한 브라우저 직접 액세스를 지원하지 않습니다.

## Graphite 쿼리 편집기


 Grafana에는 쿼리를 빌드하는 데 도움이 되는 Graphite 특정 쿼리 편집기가 포함되어 있습니다.

 Graphite로 전송되는 쿼리의 원시 텍스트를 보려면 **텍스트 편집 모드 전환**(연필) 아이콘을 선택합니다.

### 쿼리할 지표 선택


 **지표 선택**을 선택하여 지표 공간을 탐색합니다. 시작한 후 포인터 또는 키보드 화살표 키를 계속 사용할 수 있습니다. 와일드카드 문자를 선택하고 계속 진행할 수 있습니다.

### 함수


 함수를 추가하려면 **함수** 옆의 더하기 아이콘을 선택합니다. 함수를 검색하거나 메뉴에서 선택할 수 있습니다. 함수를 선택하면 함수가 추가되고 첫 번째 파라미터의 텍스트 상자에 포커스가 표시됩니다. 파라미터를 편집하거나 변경하려면 파라미터를 선택합니다. 그러면 텍스트 상자로 바뀝니다. - 함수를 삭제하려면 함수 이름을 선택한 다음, x 아이콘을 선택합니다.

 `aliasByNode`와 같은 일부 함수는 선택적 두 번째 인수를 지원합니다. 인수를 추가하려면 첫 번째 인수에서 일시 중지한 다음, 나타나는 `+` 기호를 선택합니다. 두 번째 선택적 파라미터를 제거하려면 파라미터를 선택하고 비워 둡니다. 편집기에서 이를 제거합니다.

### 레이블 정렬


 일관된 정렬이 필요한 경우 `sortByName`을 사용합니다. 여러 그래프에 동일한 레이블이 있고 둘 다 서로 다르게 정렬되고 서로 다른 색상을 사용하는 경우 번거로울 수 있습니다. 이 문제를 해결하려면 `sortByName()`을 사용합니다.

### 중첩된 쿼리


 현재 위치한 행 *문자*로 쿼리를 참조할 수 있습니다(Microsoft Excel과 유사). 그래프에 두 번째 쿼리를 추가하는 경우 \$1A를 입력하여 첫 번째 쿼리를 참조할 수 있습니다. 그러면 복합 쿼리를 편리하게 빌드할 수 있습니다.

### 와일드카드 문자를 사용하여 많은 쿼리 방지


 때때로 동일한 그래프에 여러 시계열이 작성된 것을 볼 수 있습니다. 예를 들어 시스템에서 CPU 사용 방식을 확인할 수 있습니다. 처음에는 `cpu.percent.user.g`, `cpu.percent.system.g` 등과 같은 각 시계열에 대한 쿼리를 추가하여 그래프를 생성할 수 있습니다. 이 경우 데이터 소스에 대한 쿼리가 *n*개 발생하므로 비효율적입니다.

 더 효율적으로 검색하려면 와일드카드 문자를 사용하여 모든 시계열을 하나의 쿼리로 반환할 수 있습니다. 예를 들어 `cpu.percent.*.g`입니다.

### 테이블 또는 차트에서 지표 이름 수정


 `alias` 함수를 사용하여 Grafana 테이블 또는 그래프의 지표 이름을 변경합니다(예: `aliasByNode()` 또는 `aliasSub()`).

## 포인트 통합


 Graphite에서 그래프에 있는 픽셀보다 더 많은 데이터 포인트를 반환하지 않도록 모든 Graphite 지표가 통합됩니다. 기본적으로 이 통합은 `avg` 함수를 사용하여 수행됩니다. Graphite consolidateBy 함수를 추가하여 Graphite에서 지표를 통합하는 방법을 제어할 수 있습니다.

**참고**  
 즉, 범례 요약 값(최대, 최소, 합계)을 동시에 수정할 수는 없습니다. Grafana에 의해 클라이언트 측에서 계산합니다. 통합 함수에 따라 한두 개만 동시에 수정할 수 있습니다.

## 시계열 결합


 시계열을 결합하려면 **함수** 목록에서 **결합**을 선택합니다.

## 데이터 탐색 및 태그


 Graphite에서는 모든 것이 태그입니다.

 데이터를 탐색할 때 이전에 선택한 태그를 사용하여 나머지 결과 세트를 필터링합니다. 데이터를 선택하려면 태그 표현식(`=`, `!=`, `=~`, `!=~`)을 사용하여 시계열을 필터링하는 `seriesByTag` 함수를 사용합니다.

 태그를 선택하면 Grafana 쿼리 빌더에서 자동으로 이 작업을 수행합니다.

**참고**  
 **팁:** 정규식 검색은 높은 카디널리티의 태그에서 느릴 수 있으므로 다른 태그를 사용하여 먼저 범위를 줄이도록 하세요. 특정 이름 또는 네임스페이스로 시작하면 결과를 줄이는 데 도움이 됩니다.

## 템플릿 변수


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

 태그 값을 사용하여 변수를 생성하려면 Grafana 함수 `tags` 및 `tag_values`를 사용합니다.


|  Query  |  설명  | 
| --- | --- | 
|  tags()  |  모든 태그를 반환합니다. | 
|  tags(server=\$1backend\$1\$1)  |  필터 표현식과 일치하는 시리즈에서 나타나는 태그만 반환합니다. | 
|  tag\$1values(server)  |  지정된 태그에 대한 태그 값을 반환합니다. | 
|  tag\$1values(server, server=\$1backend\$1\$1)  |  지정된 태그에 대해 나타나는 필터링된 태그 값을 해당 표현식과 일치하는 시리즈로 반환합니다. | 
|  tag\$1values(server, server=\$1backend\$1\$1, app=\$1\$1\$1apps:regex\$1)  |  여러 필터 표현식 및 표현식에서 다른 변수가 포함될 수 있습니다. | 

 자세한 내용은 [Graphite docs on the autocomplete API for tags](https://graphite.readthedocs.io/en/latest/tags.html#auto-complete-support)를 참조하세요.

### 쿼리 변수


 쿼리 필드에 지정하는 쿼리는 쿼리의 지표 찾기 유형이어야 합니다. 예를 들어 `prod.servers.*`와 같은 쿼리는 와일드카드 위치에 있는 가능한 모든 값으로 변수를 채웁니다.

 정의에서 다른 변수를 사용하는 중첩된 변수를 생성할 수도 있습니다. 예를 들어 `apps.$app.servers.*`는 쿼리 정의에서 `$app` 변수를 사용합니다.

#### `__searchFilter`를 사용하여 쿼리 변수 결과 필터링


 쿼리 필드에서 `__searchFilter`를 사용하면 드롭다운 선택 상자에 입력한 내용을 기반으로 쿼리 결과를 필터링합니다. 아무것도 입력하지 않으면 정규식의 일부로 사용할 때 `__searchFilter`의 기본값은 `*` 및 ``입니다.

 다음 예제에서는 사용자가 드롭다운 선택 상자에 텍스트를 입력하는 동안 `__searchFilter`를 쿼리 필드의 일부로 사용하여 `server` 검색을 활성화하는 방법을 보여줍니다.

 Query 

```
apps.$app.servers.$__searchFilter
```

 TagValues 

```
tag_values(server, server=~${__searchFilter:regex})
```

### 변수 사용


 지표 노드 경로에서 변수를 사용하거나 함수의 파라미터로 사용할 수 있습니다.

 두 가지 구문이 있습니다.
+  `$<varname>` 예: apps.frontend.\$1server.requests.count 
+  `${varname}` 예: apps.frontend.\$1\$1server\$1.requests.count 

 왜 두 가지 방법이 있을까요? 첫 번째 구문은 읽고 쓰기가 더 쉽지만 단어 중간에 변수를 사용할 수는 없습니다. `my.server${serverNumber}.count`와 같은 표현식에서 두 번째 구문을 사용합니다.

### 태그 쿼리에서의 변수 사용


 태그 쿼리의 다중 값 변수는 Grafana 5.0에 도입된 변수에 대한 고급 형식 구문(`{var:regex}`)을 사용합니다. 태그가 아닌 쿼리는 다중 값 변수에 대해 기본 glob 형식을 사용합니다.

 다음 코드 예제에서는 정규식 형식과 등호 틸드 연산자(`=~`)를 사용하는 태그 표현식을 보여줍니다.

```
server=~${servers:regex}
```

 자세한 내용은 [고급 변수 형식 옵션](templates-and-variables.md#advanced-variable-format-options) 단원을 참조하십시오.

## Annotations


 주석을 사용하면 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 대시보드 메뉴/주석 보기를 통해 주석 쿼리를 추가합니다. 자세한 내용은 [Annotations](dashboard-annotations.md) 단원을 참조하십시오.

 Graphite는 주석을 쿼리하는 두 가지 방법을 지원합니다.
+ 일반 지표 쿼리. 이를 위해 **Graphite 쿼리** 텍스트 상자를 사용합니다.
+ Graphite 이벤트 쿼리. 이를 위해 `Graphite event tags` 텍스트 상자를 사용하고 태그 또는 와일드카드 문자를 지정합니다(빈 상태로 유지해도 됨).

# Google Cloud Monitoring 데이터 소스에 연결
Google Cloud Monitoring

**참고**  
 이전 버전의 Grafana에서는 이 데이터 소스의 이름이 Google Stackdriver였습니다.

 Google Cloud Monitoring 지표에 대한 대시보드를 빌드할 수 있도록 Google Cloud Monitoring 데이터 소스를 추가합니다.

## 데이터 소스 추가


1.  상단 헤더에서 Grafana 아이콘을 선택하여 사이드 메뉴를 여세요.

1.  사이드 메뉴에서 **대시보드** 링크 아래에 **데이터 소스** 링크가 있습니다.

1.  상단 헤더에서 **\$1 데이터 소스 추가** 버튼을 선택하세요.

1.  **유형** 드롭다운 목록에서 **Google Cloud Monitoring**을 선택하세요.

1.  서비스 계정 키 파일에 업로드하거나 붙여넣으세요. 서비스 계정 키 파일을 생성하는 단계는 이 문서의 뒷부분을 참조하세요.

**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없는 것입니다.


|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 참조하는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  Service Account Key  |  GCP 프로젝트의 서비스 계정 키 파일. 생성 방법은 이 문서의 뒷부분에 있는 지침을 참조하세요. | 

## Authentication


 Google Cloud Monitoring 플러그인을 인증하는 두 가지 방법이 있습니다.
+ Google JWT 파일 업로드
+ Google 메타데이터 서버에서 자격 증명 자동 검색

후자의 옵션은 GCE 가상 머신에서 Grafana를 실행하는 경우에만 사용할 수 있습니다.

### Google 서비스 계정 키 파일 사용


 Google Cloud Monitoring API로 인증하려면 데이터를 표시하려는 프로젝트에 대한 Google Cloud Platform(GCP) 서비스 계정을 생성해야 합니다. Grafana 데이터 소스는 하나의 GCP 프로젝트와 통합됩니다. 여러 GCP 프로젝트의 데이터를 시각화하려면 GCP 프로젝트당 하나의 데이터 소스를 생성해야 합니다.

#### API 활성화


 먼저 다음 API를 활성화해야 합니다.
+  [뫼니터링 API](https://console.cloud.google.com/apis/library/monitoring.googleapis.com) 
+  [클라우드 리소스 관리자 API](https://console.cloud.google.com/apis/library/cloudresourcemanager.googleapis.com) 

 나열된 링크를 선택한 다음, **활성화** 버튼을 선택하세요.

#### 프로젝트에 대한 GCP 서비스 계정 생성


1.  [API 및 서비스 자격 증명 페이지](https://console.cloud.google.com/apis/credentials)로 이동하세요.

1.  **자격 증명 생성** 드롭다운/버튼을 선택하고 **서비스 계정 키** 옵션을 선택하세요.

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1create\$1service\$1account\$1button.png" class="docs-image–no-shadow" caption="Create service account button" >\$1\$1 

1.  **서비스 계정 키 생성** 페이지에서 키 유형 `JSON`을 선택하세요. 그런 다음, **서비스 계정** 드롭다운 목록에서 **새 서비스 계정** 옵션을 선택하세요.

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1create\$1service\$1account\$1key.png" class="docs-image–no-shadow" caption="Create service account key" >\$1\$1 

1.  몇 가지 새 필드가 표시됩니다. **서비스 계정 이름** 필드에 서비스 계정의 이름을 입력한 다음, **역할** 드롭다운 목록에서 **최종 사용자 모니터링** 역할을 선택하세요.

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1service\$1account\$1choose\$1role.png" class="docs-image–no-shadow" caption="Choose role" >\$1\$1 

1.  **생성** 버튼을 선택합니다. JSON 키 파일이 생성되고 컴퓨터에 다운로드됩니다. 이 파일은 Google Cloud Monitoring 데이터에 대한 액세스를 허용하므로 안전한 장소에 저장하세요.

1.  데이터 소스 **구성** 페이지에서 Grafana에 업로드하세요. 파일을 업로드하거나 파일 콘텐츠에 붙여넣을 수 있습니다.

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1grafana\$1upload\$1key.png" class="docs-image–no-shadow" caption="Upload service key file to Grafana" >\$1\$1 

1.  파일 콘텐츠는 암호화되어 Grafana 데이터베이스에 저장됩니다. 파일을 업로드한 후 저장하는 것을 잊지 마세요\$1

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1grafana\$1key\$1uploaded.png" class="docs-image–no-shadow" caption="Service key file is uploaded to Grafana" >\$1\$1 

## 쿼리 편집기 사용하기


 Google Cloud Monitoring 쿼리 편집기를 사용하면 **지표** 및 **서비스 수준 목표(SLO)**와 같은 두 가지 유형의 쿼리를 빌드할 수 있습니다. 두 유형 모두 시계열 데이터를 반환합니다.

### 지표 쿼리


 지표 쿼리 편집기를 사용하면 지표를 선택하고 레이블 및 시간을 기준으로 그룹화/집계하며 필터를 사용하여 결과에서 원하는 시계열을 지정할 수 있습니다.

 지표 쿼리를 생성하려면 다음 단계를 수행하세요.

1.  **쿼리 유형** 드롭다운 목록에서 **지표** 옵션을 선택하세요.

1.  **프로젝트** 드롭다운 목록에서 프로젝트를 선택하세요.

1.  **서비스** 드롭다운 목록에서 Google Cloud Platform 서비스를 선택하세요.

1.  **지표** 목록에서 지표를 선택하세요.

1.  필터 또는 그룹화 기준 절을 추가하거나 제거하려면 필터 및 그룹화 기준 섹션에서 더하기 및 빼기 아이콘을 사용하세요. 이 단계는 선택 사항입니다.

 Google Cloud Monitoring 지표는 다양한 유형(GAUGE, DELTA, CUMULATIVE)일 수 있으며 이러한 유형은 다양한 집계 옵션(축소기 및 정렬기)을 지원합니다. Grafana 쿼리 편집기에서는 선택한 지표에 대해 사용 가능한 집계 방법 목록을 표시하고 지표를 선택할 때 기본 축소기 및 정렬기를 설정합니다. Y축의 단위는 쿼리 편집기에서도 자동으로 선택됩니다.

#### 필터


 필터를 추가하려면 더하기 아이콘을 선택하고 필터링할 필드를 선택한 다음 필터 값을 입력합니다. 예를 들면 `instance_name = grafana-1`를 입력합니다. 필터 이름을 선택하고 `--remove filter--`를 선택하여 필터를 제거할 수 있습니다.

##### 단순 와일드카드 문자


 연산자를 `=``!=`로 설정하면 필터 값 필드에 와일드카드 문자를 추가할 수 있습니다. 예를 들어 `us-*`는 'us-'로 시작하는 모든 값을 캡처하고 `*central-a`는 'central-a'로 끝나는 모든 값을 캡처합니다. `*-central-*`는 하위 문자열이 `central-`인 모든 값을 캡처합니다. 단순 와일드카드 문자는 정규식보다 비용이 더 적게 듭니다.

##### 정규식


 연산자를 `=~``!=~`로 설정하면 필터 값 필드에 표현식을 추가할 수 있습니다. 예를 들어 `us-central[1-3]-[af]`는 'us-central'로 시작하고 뒤에 1\$13 범위의 숫자, 대시 그리고 'a' 또는 'f' 중 하나의 문자가 순서대로 나오는 모든 값를 일치시킵니다. 정규식을 생성할 때는 선행 및 후행 슬래시는 필요하지 않습니다.

#### 집계


 집계 필드를 사용하면 일반적인 통계를 기반으로 시계열을 결합할 수 있습니다. 집계에 대한 자세한 내용은 [집계 옵션](https://cloud.google.com/monitoring/charts/metrics-selector#aggregation-options)을 참조하세요.

 `Aligner` 필드를 사용하면 동일한 그룹화 기준 시간 간격 이후에 여러 시계열을 정렬할 수 있습니다. 정렬기에 대한 자세한 내용은 [정렬 지표 선택기](https://cloud.google.com/monitoring/charts/metrics-selector#alignment)를 참조하세요.

##### 정렬 기간 및 그룹화 기준 시간


 집계를 선택한 경우 `Alignment Period`에서 지표를 시간별로 그룹화합니다. 기본값은 GCP Google Cloud Monitoring 기본 그룹화(Google Cloud Monitoring UI의 그래프와 Grafana의 그래프를 비교할 수 있음)를 사용하는 것입니다. 이 옵션은 `cloud monitoring auto`이며, 기본값은 다음과 같습니다.
+  < 23시간의 시간 범위에 대해 1m 
+  >= 23시간 및 < 6일의 시간 범위에 대해 5m 
+  >= 6일의 시간 범위에 대해 1h 

 다른 자동 옵션으로 `grafana auto`가 있습니다. 그러면 선택한 시간 범위와 그래프 패널의 너비에 따라 그룹화 기준 시간을 자동으로 설정합니다. 자세한 내용은 [간격 변수 추가](variables-types.md#add-an-interval-variable) 단원을 참조하십시오.

 `1h` 또는 `1d`와 같이 그룹화할 기준으로 고정 시간 간격을 선택할 수도 있습니다.

#### 그룹화 기준


 리소스 또는 지표 레이블별로 그룹화하여 시계열 수를 줄이고 그룹화 기준에 따라 결과를 집계합니다. 예를 들어 instance\$1name별로 그룹화하여 컴퓨팅 인스턴스에 대한 집계 지표를 확인합니다.

##### 메타데이터 레이블


 리소스 메타데이터 레이블에는 Google Cloud의 리소스를 고유하게 식별하는 정보가 포함되어 있습니다. 메타데이터 레이블은 시계열 요청에서 **그룹화 기준** 세그먼트의 일부인 경우에만 시계열 응답에서 반환됩니다. 메타데이터 레이블을 검색하기 위한 API가 없으므로 선택한 서비스 및 지표에 사용할 수 있는 메타데이터 레이블을 포함하는 드롭다운 목록으로 그룹을 채울 수 없습니다. 그러나 **그룹화 기준** 필드 드롭다운 목록에는 미리 정의된 일반적인 시스템 레이블 목록이 함께 제공됩니다.

 사용자 레이블은 미리 정의할 수 없지만 **그룹화 기준** 필드에 수동으로 입력할 수 있습니다. **그룹화 기준** 세그먼트에 메타데이터 레이블, 사용자 레이블 또는 시스템 레이블이 포함된 경우 이를 기반으로 필터를 생성하고 **별칭** 필드에서 해당 값을 확장할 수 있습니다.

#### 별칭 패턴


 별칭 기준 필드를 사용하면 범례 키의 형식을 제어할 수 있습니다. 기본값은 지표 이름 및 레이블을 표시하는 것입니다. 길고 읽기 어려울 수 있습니다. 별칭 필드에서 다음 패턴을 사용하여 원하는 방식으로 범례 키 형식을 지정할 수 있습니다.

#### 지표 유형 패턴



|  별칭 패턴  |  설명  |  결과 예제  | 
| --- | --- | --- | 
|  \$1\$1metric.type\$1\$1  |  전체 지표 유형을 반환합니다. |  compute.googleapis.com/instance/cpu/utilization  | 
|  \$1\$1metric.name\$1\$1  |  지표 이름 부분을 반환합니다. |  instance/cpu/utilization  | 
|  \$1\$1metric.service\$1\$1  |  서비스 부분을 반환합니다. |  compute  | 

#### 레이블 패턴


 그룹화 기준 드롭다운 목록에서 지표 및 지표에 대한 리소스 레이블의 목록을 볼 수 있습니다. 별칭 패턴을 사용하여 범례 키에 포함될 수 있습니다.


|  별칭 패턴 형식  |  설명  |  별칭 패턴 예제  |  결과 예제  | 
| --- | --- | --- | --- | 
|  \$1\$1metric.label.xxx\$1\$1  |  지표 레이블 값을 반환합니다. |  \$1\$1metric.label.instance\$1name\$1\$1  |  grafana-1-prod  | 
|  \$1\$1resource.label.xxx\$1\$1  |  리소스 레이블 값을 반환합니다. |  \$1\$1resource.label.zone\$1\$1  |  us-east1-b  | 
|  \$1\$1metadata.system\$1labels.xxx\$1\$1  |  메타데이터 시스템 레이블 값을 반환합니다. |  \$1\$1metadata.system\$1labels.name\$1\$1  |  grafana  | 
|  \$1\$1metadata.user\$1labels.xxx\$1\$1  |  메타데이터 사용자 레이블 값을 반환합니다. |  \$1\$1metadata.user\$1labels.tag\$1\$1  |  production  | 

 별칭 기준 예제: `{{metric.type}} - {{metric.label.instance_name}}` 

 결과 예제: `compute.googleapis.com/instance/cpu/usage_time - server1-prod` 

 모니터링된 리소스 유형의 이름을 확인할 수도 있습니다.


|  별칭 패턴 형식  |  설명  |  결과 예제  | 
| --- | --- | --- | 
|  \$1\$1resource.type\$1\$1  |  모니터링되는 리소스 유형의 이름을 반환합니다. |  gce\$1instance  | 

 별칭 기준 예제: `{{resource.type}} - {{metric.type}}` 

 결과 예제: `gce_instance - compute.googleapis.com/instance/cpu/usage_time` 

### SLO 쿼리


**참고**  
 SLO 쿼리는 Grafana v7.0 이상에서만 사용할 수 있습니다.

Google Cloud Monitoring 데이터 소스의 SLO 쿼리 빌더를 사용하면 SLO 데이터를 시계열 형식으로 표시할 수 있습니다. 서비스 모니터링의 기본 개념을 이해하려면 Google Cloud Monitoring [공식 설명서](https://cloud.google.com/monitoring/service-monitoring)를 참조하세요.

#### SLO 쿼리 생성


 SLO 쿼리를 생성하려면 다음 단계를 수행하세요.

1.  **쿼리 유형** 드롭다운 목록에서 **서비스 수준 목표(SLO)** 옵션을 선택하세요.

1.  **프로젝트** 드롭다운 목록에서 프로젝트를 선택하세요.

1.  **서비스** 드롭다운 목록에서 [SLO 서비스](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services)를 선택하세요.

1.  **SLO** 드롭다운 목록에서 [SLO](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services.serviceLevelObjectives)를 선택하세요.

1.  **선택기** 드롭다운 목록에서 [시계열 선택기](https://cloud.google.com/monitoring/service-monitoring/timeseries-selectors#ts-selector-list)를 선택하세요.

 시계열 선택기에 대한 친숙한 이름이 Grafana에 표시됩니다. 다음 표에는 친숙한 이름에서 Service Monitoring 설명서에 사용되는 시스템 이름으로의 매핑이 나와 있습니다.


|  선택기 드롭다운 목록 값  |  사용된 해당 시계열 선택기  | 
| --- | --- | 
|  SLI 값  |  select\$1slo\$1health  | 
|  SLO 규정 준수  |  select\$1slo\$1compliance  | 
|  남은 SLO 오류 예산  |  select\$1slo\$1budget\$1fraction  | 

#### SLO 쿼리에 대한 별칭 패턴


 별칭 기준 필드를 사용하여 SLO 쿼리의 범례 키 형식을 제어할 수 있습니다.


|  별칭 패턴  |  설명  |  결과 예제  | 
| --- | --- | --- | 
|  \$1\$1project\$1\$1  |  GCP 프로젝트 이름을 반환합니다. |  myProject  | 
|  \$1\$1service\$1\$1  |  서비스 이름을 반환합니다. |  myService  | 
|  \$1\$1slo\$1\$1  |  SLO를 반환합니다. |  latency-slo  | 
|  \$1\$1selector\$1\$1  |  선택기를 반환합니다. |  select\$1slo\$1health  | 

#### SLO 쿼리에 대한 정렬 기간 및 그룹화 기준 시간


 SLO 쿼리에서는 지표 쿼리와 동일한 정렬 기간 기능을 사용합니다. 자세한 내용은 [지표 쿼리](#google-metric-queries) 단원을 참조하십시오.

## 템플릿 지정


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

### 쿼리 변수


 *쿼리* 유형의 변수를 사용하면 다양한 유형의 데이터에 대해 Google Cloud Monitoring을 쿼리할 수 있습니다. Google Cloud Monitoring 데이터 소스 플러그인에서는 다음 `Query Types`를 제공합니다.


|  이름  |  설명  | 
| --- | --- | 
|  Metric Types  |  지정된 서비스에 대해 사용할 수 있는 지표 유형 이름 목록을 반환합니다. | 
|  Labels Keys  |  지정된 지표에서 metric label 및 resource label에 대한 키 목록을 반환합니다. | 
|  Labels Values  |  지정된 지표에서 레이블에 대한 값 목록을 반환합니다. | 
|  Resource Types  |  지정된 지표에 대한 리소스 유형 목록을 반환합니다. | 
|  Aggregations  |  지정된 지표에 대한 집계 목록(교차 시리즈 축소기)을 반환합니다. | 
|  Aligners  |  지정된 지표에 대한 정렬기 목록(시리즈 정렬기당)을 반환합니다. | 
|  Alignment periods  |  Grafana의 Google Cloud Monitoring 쿼리 편집기에서 사용할 수 있는 모든 정렬 기간 목록을 반환합니다. | 
|  Selectors  |  서비스 수준 목표(SLO) 쿼리에 사용할 수 있는 선택기 목록을 반환합니다. | 
|  SLO Services  |  SLO 쿼리에 사용할 수 있는 서비스 모니터링 서비스 목록을 반환합니다. | 
|  Service Level Objectives (SLO)  |  지정된 SLO 서비스에 대한 SLO 목록을 반환합니다. | 

### 쿼리에서 변수 사용


 두 가지 구문이 있습니다.
+  `$<varname>` 예: `metric.label.$metric_label` 
+  `[[varname]]` 예: `metric.label.[[metric_label]]` 

 왜 두 가지 방법이 있을까요? 첫 번째 구문은 읽고 쓰기가 더 쉽지만 단어 중간에 변수를 사용할 수는 없습니다. *다중 값* 또는 *모든 값 포함* 옵션이 활성화되면 Grafana는 일반 텍스트에서 정규식 호환 문자열로 레이블을 변환합니다(즉, `=` 대신 `=~`를 사용해야 함).

## Annotations


 주석을 사용하여 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 대시보드 메뉴/주석 보기를 통해 주석 쿼리를 추가합니다. 주석 렌더링은 비용이 많이 들기 때문에 반환되는 행 수를 제한하는 것이 중요합니다. 아직 Google Cloud Monitoring 주석 및 이벤트 표시에 대한 지원은 없지만 Google Cloud Monitoring에서 [사용자 지정 지표](https://cloud.google.com/monitoring/custom-metrics/)와 함께 사용할 수 있습니다.

주석에 대한 자세한 내용은 [Annotations](dashboard-annotations.md) 섹션을 참조하세요.

 주석에 대한 쿼리 편집기를 사용하여 지표 및 필터를 선택할 수 있습니다. **제목** 및 **텍스트** 필드는 템플릿 지정을 지원하며 쿼리에서 반환된 데이터를 사용할 수 있습니다. 예를 들어 제목 필드에는 다음 텍스트가 있을 수 있습니다.

 `{{metric.type}} has value: {{metric.value}}` 

 결과 예제: `monitoring.googleapis.com/uptime_check/http_status has this value: 502` 

### 주석 쿼리 편집기에 대한 패턴



|  별칭 패턴 형식  |  설명  |  별칭 패턴 예제  |  결과 예제  | 
| --- | --- | --- | --- | 
|  \$1\$1metric.value\$1\$1  |  지표/포인트의 값. |  \$1\$1metric.value\$1\$1  |  555  | 
|  \$1\$1metric.type\$1\$1  |  전체 지표 유형을 반환합니다. |  \$1\$1metric.type\$1\$1  |  compute.googleapis.com/instance/cpu/utilization  | 
|  \$1\$1metric.name\$1\$1  |  지표 이름 부분을 반환합니다. |  \$1\$1metric.name\$1\$1  |  instance/cpu/utilization  | 
|  \$1\$1metric.service\$1\$1  |  서비스 부분을 반환합니다. |  \$1\$1metric.service\$1\$1  |  compute  | 
|  \$1\$1metric.label.xxx\$1\$1  |  지표 레이블 값을 반환합니다. |  \$1\$1metric.label.instance\$1name\$1\$1  |  grafana-1-prod  | 
|  \$1\$1resource.label.xxx\$1\$1  |  리소스 레이블 값을 반환합니다. |  \$1\$1resource.label.zone\$1\$1  |  us-east1-b  | 

## Grafana 패널에서 Google Cloud Console의 지표 탐색기로 딥링크


**참고**  
 이 기능은 지표 쿼리에서만 사용할 수 있습니다.

 패널에서 시계열을 선택하면 Google Cloud Console에서 지표 탐색기에서 보기에 대한 링크를 포함하는 컨텍스트 메뉴가 표시됩니다. 이 링크를 선택하면 Google Cloud Console에서 지표 탐색기가 열리고 해당 위치의 Grafana 패널에서 쿼리가 실행됩니다. 링크를 사용하면 사용자는 먼저 Google 계정 선택기로 이동합니다. 계정을 성공적으로 선택하면 사용자가 지표 탐색기로 리디렉션됩니다. 제공된 링크는 모든 계정에 유효하지만, 계정이 쿼리에 지정된 GCP 프로젝트에 대한 액세스 권한을 보유하는 경우에만 쿼리를 표시합니다.

# InfluxDB 데이터 소스에 연결
InfluxDB

 Grafana는 InfluxDB에 대해 다양한 기능을 지원하는 데이터 소스 플러그인을 함께 제공합니다. 플러그인은 사용자 지정 쿼리 편집기를 포함하며 주석 및 쿼리 템플릿을 지원합니다.

## 데이터 소스 추가


1.  상단 헤더에서 Grafana 아이콘을 선택하여 사이드 메뉴를 여세요.

1.  사이드 메뉴에서 **대시보드** 링크 아래에 **데이터 소스**라는 링크가 있습니다.

1.  상단 헤더에서 **\$1 데이터 소스 추가** 버튼을 선택하세요.

1.  **유형** 드롭다운 목록에서 **InfluxDB**를 선택하세요.

1.  **쿼리 언어** 목록에서 **InfluxQL** 또는 **Flux**를 선택하세요.

**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.

# Jaeger 데이터 소스에 연결
Jaeger

 Jaeger 데이터 소스는 오픈 소스, 엔드투엔드 분산 추적을 제공합니다.

## 데이터 소스 추가


 Jaeger 설정에 액세스하려면 **구성**(톱니) 아이콘을 선택하고 **데이터 소스**를 선택한 다음, **Jaeger**를 선택하세요.


|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널, 쿼리 및 탐색에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  URL  |  Jaeger 인스턴스의 URL(예: http://localhost:16686). | 
|  Access  |  서버(기본값) = Grafana 백엔드/서버에서 URL에 액세스할 수 있어야 합니다. | 
|  Basic Auth  |  Jaeger 데이터 소스에 대한 기본 인증을 활성화합니다. | 
|  User  |  기본 인증을 위한 사용자 이름. | 
|  Password  |  기본 인증을 위한 암호. | 

## 추적 쿼리


 탐색을 통해 Jaeger에서 추적을 쿼리하고 표시할 수 있습니다. 자세한 내용은 [탐색](explore.md) 단원을 참조하십시오.

 Jaeger 쿼리 편집기를 사용하면 추적 ID로 직접 쿼리하거나 추적 선택기에서 추적을 선택할 수 있습니다. 추적 ID로 쿼리하려면 텍스트 입력에 ID를 삽입합니다.

 추적 선택기를 사용하여 탐색에서 선택한 시간 범위에 로깅된 모든 추적에서 특정 추적을 선택하세요. 추적 선택기에는 세 가지 중첩 수준이 있습니다. 1. 원하는 서비스. 1. 특정 작업은 선택한 서비스의 일부입니다. 1. 선택한 작업이 발생한 특정 추적(루트 작업 이름 및 추적 기간으로 표시됨).

## 로그에서 추적 ID에 연결


 내부 링크로 파생 필드를 구성하여 Loki의 로그에서 Jaeger 추적에 연결할 수 있습니다. 자세한 내용은 [파생 필드](using-loki-in-AMG.md#loki-derived-fields) 단원을 참조하십시오.

# Loki 데이터 소스에 연결
Loki

 Loki 데이터 소스는 Grafana의 로그 집계 시스템인 Loki에 대한 액세스를 제공합니다.

## 데이터 소스 추가


1.  Grafana 워크스페이스를 열고 로그인했는지 확인합니다.

1.  사이드 메뉴에서 **구성** 링크 아래에 **데이터 소스** 링크가 있습니다.

1.  상단의 **데이터 소스 추가** 버튼을 선택하세요.

1.  데이터 소스 목록에서 **Loki**를 선택하세요.

**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.


|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널, 쿼리 및 탐색에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  URL  | Loki 인스턴스의 URL(예: http://localhost:3100). Amazon EC2 호스트의 URL, Amazon EKS 클러스터 전면의 Application Load Balancer 또는 Loki 인스턴스의 다른 URL일 수 있습니다. | 
|  Maximum lines  |  Loki에서 반환하는 로그 줄 수의 상한(기본값: 1,000). 탐색에 로그를 표시할 때 브라우저가 느리게 작동하면 줄입니다. | 

### 파생 필드


 *파생 필드* 구성을 사용하여 다음을 수행할 수 있습니다.
+  로그 메시지에서 구문 분석된 필드를 추가합니다.
+  필드 값을 사용하는 링크를 추가합니다.

 이 기능을 사용하여 로그에서 직접 추적 백엔드에 연결하거나 로그 줄에 userId가 있는 경우 사용자 프로파일 페이지에 연결할 수 있습니다. 이러한 링크는 로그 세부 정보에 표시됩니다. 자세한 내용은 [레이블 및 감지된 필드](explore.md#labels-and-detected-fields) 단원을 참조하십시오.

파생된 각 필드는 다음으로 구성됩니다.
+  **이름** - 로그 세부 정보에 레이블로 표시됩니다.
+  **정규식** - 로그 메시지에서 실행되고 그 일부를 새 필드의 값으로 캡처하는 정규식 패턴. 단일 캡처 그룹만 포함할 수 있습니다.
+  **URL/쿼리** - 링크가 외부인 경우 전체 링크 URL을 입력합니다. 링크가 내부 링크인 경우 이 입력은 대상 데이터 소스에 대한 쿼리 역할을 합니다. 두 경우 모두 필드의 값을 `${__value.raw }` 매크로로 보간할 수 있습니다.
+  **내부 링크** - 링크가 내부 링크인지 외부 링크인지 선택합니다. 내부 링크의 경우 데이터 소스 선택기를 사용하여 대상 데이터 소스를 선택할 수 있습니다. 추적 데이터 소스만 지원됩니다.

 디버그 섹션을 사용하여 필드 추출 내용과 URL 보간 방법을 확인할 수 있습니다. **예제 로그 메시지 표시**를 선택하여 로그 메시지를 입력할 수 있는 텍스트 영역을 표시합니다.

 로그 세부 정보에 링크와 함께 표시된 새 필드.

## 로그 쿼리


 Loki에서 로그 데이터 쿼리 및 표시는 탐색을 통해 사용할 수 있으며 시각화의 로그 패널과 함께 사용할 수 있습니다. Loki 데이터 소스를 선택한 다음, LogQL 쿼리를 입력하여 로그를 표시합니다. LogQL에 대한 자세한 내용은 [LogQL](https://grafana.com/docs/loki/latest/logql/)을 참조하세요.

### 로그 쿼리


 로그 쿼리는 **로그 스트림 선택기** 및 **검색 표현식**과 같은 두 부분으로 구성됩니다. 성능상의 이유로 먼저 로그 스트림에 대한 로그 레이블을 선택해야 합니다.

 쿼리 필드 옆의 로그 탐색기(**로그 레이블** 버튼)에는 사용 가능한 로그 스트림의 레이블 목록이 표시됩니다. 쿼리를 작성하는 다른 방법은 쿼리 필드의 자동 완성을 사용하는 것입니다. 먼저 왼쪽 중괄호(`{`)를 입력하면 자동 완성 메뉴에 레이블 목록이 제안됩니다. **Enter** 키를 눌러 쿼리를 실행합니다.

 결과가 반환되면 로그 패널에 로그 행 목록 및 막대 차트가 표시됩니다. 이때 막대 차트에서는 x축은 시간, y축은 빈도/수를 표시합니다.

### 로그 스트림 선택기


 쿼리 표현식의 레이블 부분에 대해 중괄호(`{}`)로 묶은 다음, 키 값 구문을 사용하여 레이블을 선택합니다. 여러 레이블 표현식은 쉼표로 구분됩니다.

 `{app="mysql",name="mysql-backup"}` 

 현재 다음과 같은 레이블 일치 연산자가 지원됩니다.
+  `=`: 정확히 동일합니다.
+  `!=`: 같지 않습니다.
+  `=~`: 정규식 일치.
+  `!~`: 정규식 일치와 같지 않습니다.

 예시: 
+  `{name=~"mysql.+"}` 
+  `{name!~"mysql.+"}` 

 레이블 선택기를 추가하는 또 다른 방법은 테이블 섹션에 있습니다. 레이블 옆의 **필터**를 선택하여 쿼리 표현식에 레이블을 추가합니다. 이는 여러 쿼리에서도 작동하며 각 쿼리에 레이블 선택기를 추가합니다.

### 검색 표현식


 로그 스트림 선택기를 작성한 후 검색 표현식을 작성하여 결과를 추가로 필터링할 수 있습니다. 검색 표현식은 텍스트 또는 정규식일 수 있습니다.

 쿼리 예제: 
+  `{job="mysql"} |= "error"` 
+  `{name="kafka"} |~ "tsdb-ops.*io:2003"` 
+  `{instance=~"kafka-[23]",name="kafka"} != "kafka.server:type=ReplicaManager"` 

 필터 연산자는 연결될 수 있으며 표현식을 순차적으로 필터링합니다. 결과 로그 줄은 모든 필터를 충족합니다.

 예제 

 `{job="mysql"} |= "error" != "timeout"` 

 현재 다음과 같은 필터 유형이 지원됩니다.
+  `|=` 줄에 문자열이 포함되어 있습니다.
+  `!=` 줄에 문자열이 포함되어 있지 않습니다.
+  `|~` 줄이 정규식과 일치합니다.
+  `!~` 줄이 정규 표현식과 일치하지 않습니다.

**참고**  
 Loki의 쿼리 언어인 LogQL에 대한 자세한 내용은 [Loki LogQL](https://grafana.com/docs/loki/latest/logql/)을 참조하세요.

## 로그 컨텍스트


 위에서 설명한 검색 표현식을 사용하면 필터링된 결과 앞뒤의 컨텍스트를 검색할 수 있습니다. 필터링된 행에서 `Show Context` 링크를 선택하면 관심 있는 로그 메시지 앞뒤에 오는 로그 메시지를 조사할 수 있습니다.

## 템플릿 지정


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

## Annotations


 지표가 아닌 Loki 쿼리를 주석의 소스로 사용할 수 있습니다. 로그 콘텐츠는 주석 텍스트로 사용되고 로그 스트림 레이블은 태그로 사용되므로 추가 매핑이 필요하지 않습니다.

# Microsoft SQL Server 데이터 소스에 연결
Microsoft SQL Server

 Microsoft SQL Server(MSSQL) 데이터 소스를 사용하여 Microsoft Azure SQL Database를 포함하는 모든 Microsoft SQL Server 2005 이상에서 데이터를 쿼리하고 시각화합니다.

**중요**  
Grafana 버전 8.0에서는 Microsoft SQL Server, Postgres 및 MySQL 의 데이터 프레임에 대한 기본 데이터 구조를 변경합니다. 따라서 시계열 쿼리 결과가 와이드 형식으로 반환됩니다. 자세한 내용은 Grafana 데이터 프레임 설명서의 [Wide format](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format)을 참조하세요.  
시각화가 이전과 같이 작동하려면 몇 가지 수동 마이그레이션을 수행해야 할 수 있습니다. Github([Postgres/MySQL/MSSQL: Breaking change in v8.0 related to time series queries and ordering of data column](https://github.com/grafana/grafana/issues/35534))에서 한 가지 솔루션이 문서화되어 있습니다.

## 데이터 소스 추가


1.  상단 헤더에서 Grafana 아이콘을 선택하여 사이드 메뉴를 여세요.

1.  사이드 메뉴에서 **구성** 링크 아래에 **데이터 소스** 링크가 있습니다.

1.  상단 헤더에서 **\$1 데이터 소스 추가** 버튼을 선택하세요.

1.  **유형** 드롭다운 목록에서 **Microsoft SQL Server**를 선택하세요.

### 데이터 소스 옵션



|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  Host  |  MSSQL 인스턴스의 IP 주소/호스트 이름 및 선택적 포트. 포트가 생략되면 기본값 1433이 사용됩니다. | 
|  Database  |  MSSQL 데이터베이스의 이름. | 
|  User  |  데이터베이스 사용자의 로그인/사용자 이름. | 
|  Password  |  데이터베이스 사용자 암호. | 
|  Encrypt  |  이 옵션은 보안 SSL TCP/IP 연결을 서버와 협상할지 여부 또는 범위(기본값: false)를 결정합니다(Grafana v5.4 이상). | 
|  Max open  |  데이터베이스에 대한 최대 열린 연결 수, 기본값 unlimited(Grafana v5.4 이상). | 
|  Max idle  |  유휴 연결 풀의 최대 연결 수, 기본값: 2(Grafana v5.4 이상). | 
|  Max lifetime  |  연결을 재사용할 수 있는 최대 시간(초 단위, 기본값 14400/4시간). | 

### 최소 시간 간격


 `$_interval` `$_interval_ms` 변수의 하한. 데이터가 1분마다 기록되는 경우 `1m`과 같이 쓰기 빈도로 설정하는 것이 좋습니다. 이 옵션은 대시보드 패널의 데이터 소스 옵션에서 재정의/구성할 수도 있습니다. 이 값은 숫자 및 유효한 시간 식별자의 순서로 형식이 지정되어야 **합니다**(예: `1m`(1분) 또는 `30s`(30초)). 다음 시간 식별자가 지원됩니다.


|  식별자  |  설명  | 
| --- | --- | 
|  y  |  연도  | 
|  M  |  월  | 
|  w  |  주  | 
|  d  |  일  | 
|  h  |  시간  | 
|  m  |  분  | 
|  s  |  초  | 
|  ms  |  밀리초  | 

### 데이터베이스 사용자 권한


**중요**  
 데이터 소스를 추가할 때 지정하는 데이터베이스 사용자에게는 쿼리하려는 지정된 데이터베이스 및 테이블에 대한 SELECT 권한만 부여해야 합니다. Grafana에서는 쿼리가 안전한지 검증하지 않습니다. 쿼리에는 모든 SQL 문이 포함될 수 있습니다. 예를 들어 `DELETE FROM user;` 및 `DROP TABLE user;`와 같은 명령문이 실행됩니다. 이를 방지하려면 제한된 권한의 특정 MSSQL 사용자를 생성하는 것이 좋습니다.

 다음 코드 예제에서는 제한된 권한의 특정 MSSQL 사용자를 생성하는 방법을 보여줍니다.

```
 CREATE USER grafanareader WITH PASSWORD 'password'
 GRANT SELECT ON dbo.YourTable3 TO grafanareader
```

 사용자가 퍼블릭 역할에서 원치 않는 권한을 얻지 않도록 해야 합니다.

### 알려진 문제


 2008 및 2008R2와 같은 이전 버전의 Microsoft SQL Server를 사용하는 경우 연결을 위해 암호화를 비활성화해야 할 수 있습니다. 가능하면 최적의 호환성을 위해 사용 가능한 최신 서비스 팩을 사용하는 것이 좋습니다.

## 쿼리 편집기


 MSSQL 쿼리 편집기는 그래프, 단일 통계 또는 테이블 패널의 편집 모드일 때 지표 탭에서 찾을 수 있습니다. 패널 제목을 선택하고 편집을 선택하여 편집 모드로 전환합니다. 편집기를 사용하면 시각화할 데이터를 선택하도록 SQL 쿼리를 정의할 수 있습니다.

1.  *형식*으로 `Time series`(특히 그래프 또는 단일 통계 패널에서 사용) 또는 `Table`(특히 테이블 패널에서 사용)을 선택하세요.

1.  SQL 쿼리를 작성하는 실제 편집기입니다.

1.  쿼리 편집기 아래에 MSSQL에 대한 도움말 섹션을 표시하세요.

1.  실행된 SQL 쿼리를 표시하세요. 성공적인 쿼리가 실행된 후 먼저 사용 가능합니다.

1.  추가 쿼리 편집기가 표시될 추가 쿼리를 추가하세요.

## 매크로


 구문을 단순화하고 날짜 범위 필터와 같은 동적 부분을 허용하기 위해 쿼리에 매크로가 포함될 수 있습니다.


|  매크로 예제  |  설명  | 
| --- | --- | 
|  \$1\$1\$1time(dateColumn)  |  열 이름을 time으로 바꾸는 표현식으로 대체됩니다. 예를 들어, dateColumn as time과 같습니다. | 
|  \$1\$1\$1timeEpoch(dateColumn)  |  DATETIME 열 유형을 Unix 타임스탬프로 변환하고 이름을 time으로 바꾸는 표현식으로 대체됩니다. 예: DATEDIFF(second, "1970-01-01", dateColumn) AS time. | 
|  \$1\$1\$1timeFilter(dateColumn)  |  지정된 열 이름을 사용하여 시간 범위 필터로 대체됩니다. 예: dateColumn BETWEEN "2017-04-21T05:01:17Z" AND "2017-04-21T05:06:17Z". | 
|  \$1\$1\$1timeFrom()  |  현재 활성 시간 선택의 시작으로 대체됩니다. 예: "2017-04-21T05:01:17Z". | 
|  \$1\$1\$1timeTo()  |  현재 활성 시간 선택의 끝으로 대체됩니다. 예: "2017-04-21T05:06:17Z". | 
|  \$1\$1\$1timeGroup(dateColumn,'5m'[, fillvalue])  |  GROUP BY 절에서 사용할 수 있는 표현식으로 대체됩니다. NULL 또는 부동 값의 fillValue를 제공하면 해당 값으로 시간 범위의 빈 시리즈를 자동으로 채웁니다. 예: CAST(ROUND(DATEDIFF(second, "1970-01-01", time\$1column)/300.0, 0) as bigint)\$1300. | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', 0)  |  이전과 동일하지만 채우기 파라미터가 있는 경우 해당 시리즈의 누락된 포인트가 Grafana에 의해 추가되고 0이 값으로 사용됩니다. | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', NULL)  |  위와 동일하지만 NULL이 누락 포인트의 값으로 사용됩니다. | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', previous)  |  위와 동일하지만 해당 시리즈의 이전 값이 채우기 값으로 사용됩니다. 아직 값이 보이지 않으면 NULL이 사용됩니다(Grafana 5.3 이상에서만 사용 가능). | 

 쿼리 편집기에는 패널 편집 모드에서 쿼리가 실행된 후 표시되는 **생성된 SQL** 링크가 있습니다. 이를 선택하면 실행된 원시 보간 SQL 문자열이 확장되고 표시됩니다.

## 테이블 쿼리


 쿼리 옵션에서 **형식**이 **테이블**로 설정된 경우 기본적으로 모든 유형의 SQL 쿼리를 수행할 수 있습니다. 테이블 패널에는 쿼리에서 반환하는 열 및 행의 결과가 자동으로 표시됩니다.

 다음 코드 예제에서는 데이터베이스 테이블을 보여줍니다.

```
CREATE TABLE [event] (
  time_sec bigint,
  description nvarchar(100),
  tags nvarchar(100),
)
```

```
CREATE TABLE [mssql_types] (
  c_bit bit, c_tinyint tinyint, c_smallint smallint, c_int int, c_bigint bigint, c_money money, c_smallmoney smallmoney, c_numeric numeric(10,5),
  c_real real, c_decimal decimal(10,2), c_float float,
  c_char char(10), c_varchar varchar(10), c_text text,
  c_nchar nchar(12), c_nvarchar nvarchar(12), c_ntext ntext,
  c_datetime datetime,  c_datetime2 datetime2, c_smalldatetime smalldatetime, c_date date, c_time time, c_datetimeoffset datetimeoffset
)

INSERT INTO [mssql_types]
SELECT
  1, 5, 20020, 980300, 1420070400, '$20000.15', '£2.15', 12345.12,
  1.11, 2.22, 3.33,
  'char10', 'varchar10', 'text',
  N'☺nchar12☺', N'☺nvarchar12☺', N'☺text☺',
  GETDATE(), CAST(GETDATE() AS DATETIME2), CAST(GETDATE() AS SMALLDATETIME), CAST(GETDATE() AS DATE), CAST(GETDATE() AS TIME), SWITCHOFFSET(CAST(GETDATE() AS DATETIMEOFFSET), '-07:00')
```

 다음 코드 예제에서는 쿼리를 보여줍니다.

```
SELECT * FROM [mssql_types]
```

 다음 코드 예제와 같이 일반 `AS` SQL 열 선택 구문을 사용하여 테이블 패널 열의 이름을 제어할 수 있습니다.

```
SELECT
  c_bit as [column1], c_tinyint as [column2]
FROM
  [mssql_types]
```

 결과 테이블 패널: 

## 시계열 쿼리


 예를 들어 그래프 패널에서 사용하기 위해 **형식**을 **시계열**로 설정한 경우 쿼리는 SQL datetime 또는 Unix 에포크(초 단위)를 반환하는 숫자 데이터 유형을 반환하는 `time`이라는 열을 보유해야 합니다. 값 열의 지표 이름으로 사용되는 `metric` 열을 반환할 수 있습니다. `time` 및 `metric`을 제외한 모든 열은 값 열로 처리됩니다. `metric` 열을 생략하면 값 열의 이름이 지표 이름이 됩니다. 다중 값 열을 선택할 수 있으며, 각 열의 이름은 지표로 표시됩니다. 다중 값 열과 `metric` 열을 반환하면 이 열이 시리즈 이름의 접두사로 사용됩니다.

 시계열 쿼리의 결과 세트는 시간별로 정렬해야 합니다.

 다음 코드 예제에서는 데이터베이스 테이블을 보여줍니다.

```
CREATE TABLE [event] (
  time_sec bigint,
  description nvarchar(100),
  tags nvarchar(100),
)
```

```
CREATE TABLE metric_values (
  time datetime,
  measurement nvarchar(100),
  valueOne int,
  valueTwo int,
)

INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 12:30:00', 'Metric A', 62, 6)
INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 12:30:00', 'Metric B', 49, 11)
...
INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 13:55:00', 'Metric A', 14, 25)
INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 13:55:00', 'Metric B', 48, 10)
```

 다음 코드 예제에서는 하나의 `value` 및 하나의 `metric` 열을 보여줍니다.

```
SELECT
  time,
  valueOne,
  measurement as metric
FROM
  metric_values
WHERE
  $__timeFilter(time)
ORDER BY 1
```

 그래프 패널에서 이전 쿼리를 사용하면 `time` 동안 작성된 두 개의 시리즈(이름이 `Metric A` 및 `Metric B`이고, 값이 `valueOne` 및 `valueTwo`임)가 생성됩니다.

 다음 코드 예제에서는 여러 `value` 열을 보여줍니다.

```
SELECT
  time,
  valueOne,
  valueTwo
FROM
  metric_values
WHERE
  $__timeFilter(time)
ORDER BY 1
```

 그래프 패널에서 이전 쿼리를 사용하면 `time` 동안 작성된 두 개의 시리즈(이름이 `Metric A` 및 `Metric B`이고, 값이 `valueOne` 및 `valueTwo`임)가 생성됩니다.

 다음 코드 예제에서는 \$1\$1\$1timeGroup 매크로 사용을 보여줍니다.

```
SELECT
  $__timeGroup(time, '3m') as time,
  measurement as metric,
  avg(valueOne)
FROM
  metric_values
WHERE
  $__timeFilter(time)
GROUP BY
  $__timeGroup(time, '3m'),
  measurement
ORDER BY 1
```

 그래프 패널에서 이전 쿼리를 사용하면 `time` 동안 작성된 두 개의 시리즈(이름이 `Metric A` 및 `Metric B`이고, 값이 `valueOne` 및 `valueTwo`임)가 생성됩니다. 3분의 기간에 값이 없는 두 시리즈는 이 두 선 사이에 하나의 선을 렌더링합니다. 오른쪽의 그래프는 절대 0으로 내려가지 않습니다.

 다음 코드 예제에서는 채우기 파라미터가 0으로 설정된 \$1\$1\$1timeGroup 매크로 사용을 보여줍니다.

```
SELECT
  $__timeGroup(time, '3m', 0) as time,
  measurement as metric,
  sum(valueTwo)
FROM
  metric_values
WHERE
  $__timeFilter(time)
GROUP BY
  $__timeGroup(time, '3m'),
  measurement
ORDER BY 1
```

 그래프 패널에서 이 쿼리를 사용하는 경우 결과는 `time` 동안 작성된 두 개의 시리즈(이름이 `Metric A` 및 `Metric B`이고, 합계가 `valueTwo`임)입니다. 3분 기간에 값이 없는 모든 시리즈는 값이 0이며, 그래프에서 오른쪽에 렌더링됩니다.

## 템플릿 지정


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

### 쿼리 변수


 `Query` 유형의 템플릿 변수를 추가하는 경우 드롭다운 선택 상자로 표시되는 측정 이름, 키 이름 또는 키 값과 같은 항목을 반환할 수 있는 MSSQL 쿼리를 작성할 수 있습니다.

 예를 들어 템플릿 지정 변수 **쿼리 설정에서 이와 같은 쿼리를 지정하여 `hostname` 열의 모든 값을 포함하는 변수를 가질 수 있습니다.

```
SELECT hostname FROM host
```

 쿼리는 여러 열을 반환할 수 있으며 Grafana는 이 열에서 목록을 자동으로 생성합니다. 예를 들어 다음 쿼리는 `hostname` 및 `hostname2`의 값이 포함된 목록을 반환합니다.

```
SELECT [host].[hostname], [other_host].[hostname2] FROM host JOIN other_host ON [host].[city] = [other_host].[city]
```

 또 다른 옵션으로 키/값 변수를 생성할 수 있는 쿼리가 있습니다. 쿼리에서 `__text` 및 `__value`라는 두 개의 열을 반환해야 합니다. `__text` 열 값은 고유해야 합니다(고유하지 않은 경우 첫 번째 값이 사용됨). 드롭다운 목록의 옵션은 텍스트 및 값을 포함하며, 여기에서는 친숙한 이름(텍스트) 및 ID(값)를 지정할 수 있습니다. `hostname`을 텍스트로, `id`를 값으로 사용하는 쿼리 예제: 

```
SELECT hostname __text, id __value FROM host
```

 중첩 변수를 생성할 수도 있습니다. 예를 들어 다른 `region` 변수가 있는 경우. 그런 다음, 호스트 변수가 이와 같은 쿼리를 사용하여 현재 선택한 리전의 호스트만 표시하도록 할 수 있습니다(`region`이 다중 값 변수인 경우 여러 값과 일치시키는 `=`보다 `IN` 비교 연산자 사용).

```
SELECT hostname FROM host WHERE region IN ($region)
```

### 쿼리에서 변수 사용


**참고**  
 템플릿 변수 값은 템플릿 변수가 `multi-value`인 경우에만 따옴표로 묶습니다.

 변수가 다중 값 변수인 경우 여러 값과 일치시키는 `=`보다 `IN` 비교 연산자를 사용합니다.

 두 가지 구문이 있습니다.

 `$<varname>`: 템플릿 변수 이름이 `hostname`인 예제: 

```
SELECT
  atimestamp time,
  aint value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp
```

 `[[varname]]`: 템플릿 변수 이름이 `hostname`인 예제: 

```
SELECT
  atimestamp as time,
  aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp
```

#### 다중 값 변수에 대한 따옴표 기능 끄기


 Grafana에서는 다중 값 변수에 대해 따옴표로 묶고 쉼표로 구분된 문자열을 자동으로 생성합니다. 예를 들어 `server01` 및 `server02`를 선택하면 `'server01', 'server02'` 형식으로 지정됩니다. 이 기능을 끄려면 변수에 csv 형식 지정 옵션을 사용합니다.

 `${servers:csv}` 

 변수 형식 지정 옵션에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

## Annotations


 주석을 사용하여 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 대시보드 메뉴/주석 보기를 통해 주석 쿼리를 추가합니다. 자세한 내용은 [Annotations](dashboard-annotations.md) 단원을 참조하십시오.

 **열:** 


|  이름  |  설명  | 
| --- | --- | 
|  time  |  날짜/시간 필드의 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  timeend  |  종료 날짜/시간 필드의 선택적 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  text  |  이벤트 설명 필드. | 
|  tags  |  이벤트 태그에 쉼표로 구분된 문자열로 사용할 선택적 필드 이름. | 

 다음 코드 예제에서는 데이터베이스 테이블을 보여줍니다.

```
CREATE TABLE [events] (
  time_sec bigint,
  description nvarchar(100),
  tags nvarchar(100),
)
```

 또한 [시계열 쿼리](#mssql-time-series-queries)에 정의된 데이터베이스 테이블도 사용합니다.

 다음 코드 예제에서는 에포크 값이 있는 시간 열을 사용하는 쿼리를 보여줍니다.

```
SELECT
  time_sec as time,
  description as [text],
  tags
FROM
  [events]
WHERE
  $__unixEpochFilter(time_sec)
ORDER BY 1
```

 다음 코드 예제에서는 에포크 값을 포함하는 time 및 timeend 열을 사용하는 리전 쿼리를 보여줍니다.

```
SELECT
  time_sec as time,
  time_end_sec as timeend,
  description as [text],
  tags
FROM
  [events]
WHERE
  $__unixEpochFilter(time_sec)
ORDER BY 1
```

 다음 코드 예제에서는 기본 SQL 날짜/시간 데이터 유형의 시간 열을 사용하는 쿼리를 보여줍니다.

```
SELECT
  time,
  measurement as text,
  convert(varchar, valueOne) + ',' + convert(varchar, valueTwo) as tags
FROM
  metric_values
WHERE
  $__timeFilter(time_column)
ORDER BY 1
```

## 저장 프로시저 지원


 저장 프로시저는 제대로 작동되는지 확인되었습니다. 하지만 예상대로 작동하지 않는 엣지 사례가 있을 수 있습니다. 각 섹션에서 앞서 설명한 것과 같이 저장 프로시저는 열의 동일한 이름 지정을 사용하고 동일한 형식으로 데이터를 반환하는 한, 테이블, 시계열 및 주석 쿼리에서 지원되어야 합니다.

 매크로 함수는 저장 프로시저 내에서 작동하지 않습니다.

### 예제


 다음 예제에서는 데이터베이스 테이블이 시계열 쿼리에 정의되어 있습니다. 열 `valueOne`, `valueTwo`, `measurement`의 모든 조합과 같이 그래프 패널에서 네 개의 시리즈를 시각화하려고 한다고 가정합니다. 오른쪽의 그래프 패널에서는 달성하려는 목표를 시각화합니다. 이 문제를 해결하려면 다음과 같이 두 가지 쿼리를 사용해야 합니다.

 다음 코드 예제에서는 첫 번째 쿼리를 보여줍니다.

```
SELECT
  $__timeGroup(time, '5m') as time,
  measurement + ' - value one' as metric,
  avg(valueOne) as valueOne
FROM
  metric_values
WHERE
  $__timeFilter(time)
GROUP BY
  $__timeGroup(time, '5m'),
  measurement
ORDER BY 1
```

 다음 코드 예제에서는 두 번째 쿼리를 보여줍니다.

```
SELECT
  $__timeGroup(time, '5m') as time,
  measurement + ' - value two' as metric,
  avg(valueTwo) as valueTwo
FROM
  metric_values
GROUP BY
  $__timeGroup(time, '5m'),
  measurement
ORDER BY 1
```

#### 에포크 형식의 시간을 사용하는 저장 프로시저


 위와 같은 그래프 패널에서 네 개의 시리즈를 렌더링하는 데 필요한 모든 데이터를 반환하는 저장 프로시저를 정의할 수 있습니다. 이 경우 저장 프로시저는 `int` 데이터 유형의 `@from` 및 `@to` 파라미터 두 개를 수락합니다. 이 파라미터는 저장 프로시저에서 반환할 데이터를 필터링하는 데 사용되는 에포크 형식의 시간 범위(시작\$1종료)여야 합니다.

 이 경우 선택 및 그룹화 기준 표현식에서 `$__timeGroup(time, '5m')`을 모방하므로 여러 긴 표현식이 필요합니다. 원하는 경우 MSSQL 함수로 추출할 수 있습니다.

```
CREATE PROCEDURE sp_test_epoch(
  @from int,
  @to   int
)   AS
BEGIN
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int) as time,
    measurement + ' - value one' as metric,
    avg(valueOne) as value
  FROM
    metric_values
  WHERE
    time >= DATEADD(s, @from, '1970-01-01') AND time <= DATEADD(s, @to, '1970-01-01')
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int),
    measurement
  UNION ALL
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int) as time,
    measurement + ' - value two' as metric,
    avg(valueTwo) as value
  FROM
    metric_values
  WHERE
    time >= DATEADD(s, @from, '1970-01-01') AND time <= DATEADD(s, @to, '1970-01-01')
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int),
    measurement
  ORDER BY 1
END
```

 그런 다음, 그래프 패널에 다음 쿼리를 사용할 수 있습니다.

```
DECLARE
  @from int = $__unixEpochFrom(),
  @to int = $__unixEpochTo()

EXEC dbo.sp_test_epoch @from, @to
```

#### datetime 형식의 시간을 사용하는 저장 프로시저


 위와 같은 그래프 패널에서 네 개의 시리즈를 렌더링하는 데 필요한 모든 데이터를 반환하는 저장 프로시저를 정의할 수 있습니다. 이 경우 저장 프로시저는 `datetime` 데이터 유형의 `@from` 및 `@to` 파라미터 두 개를 수락합니다. 이 파라미터는 저장 프로시저에서 반환할 데이터를 필터링하는 데 사용되는 시간 범위(시작\$1종료)여야 합니다.

 이 경우 선택 및 그룹화 기준 표현식에서 `$__timeGroup(time, '5m')`을 모방하므로 여러 긴 표현식이 필요합니다. 원하는 경우 MSSQL 함수로 추출할 수 있습니다.

```
CREATE PROCEDURE sp_test_datetime(
  @from datetime,
  @to   datetime
)   AS
BEGIN
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int) as time,
    measurement + ' - value one' as metric,
    avg(valueOne) as value
  FROM
    metric_values
  WHERE
    time >= @from AND time <= @to
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int),
    measurement
  UNION ALL
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int) as time,
    measurement + ' - value two' as metric,
    avg(valueTwo) as value
  FROM
    metric_values
  WHERE
    time >= @from AND time <= @to
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int),
    measurement
  ORDER BY 1
END
```

 그런 다음, 그래프 패널에 다음 쿼리를 사용할 수 있습니다.

```
DECLARE
  @from datetime = $__timeFrom(),
  @to datetime = $__timeTo()

EXEC dbo.sp_test_datetime @from, @to
```

## 알림


 시계열 쿼리는 알림 조건에서 작동해야 합니다. 테이블 형식의 쿼리는 알림 규칙 조건에서 아직 지원되지 않습니다.

# MySQL 데이터 소스에 연결
MySQL

 MySQL 호환 데이터베이스에서 데이터를 쿼리하고 시각화할 수 있도록 MySQL 데이터 소스를 추가합니다.

**중요**  
Grafana 버전 8.0에서는 MySQL, Postgres 및 Microsoft SQL Server 데이터 소스의 데이터 프레임에 대한 기본 데이터 구조를 변경합니다. 따라서 시계열 쿼리 결과가 와이드 형식으로 반환됩니다. 자세한 내용은 Grafana 데이터 프레임 설명서의 [Wide format](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format)을 참조하세요.  
시각화가 이전과 같이 작동하려면 몇 가지 수동 마이그레이션을 수행해야 할 수 있습니다. Github([Postgres/MySQL/MSSQL: Breaking change in v8.0 related to time series queries and ordering of data column](https://github.com/grafana/grafana/issues/35534))에서 한 가지 솔루션이 문서화되어 있습니다.

## 데이터 소스 추가


1.  상단 헤더에서 Grafana 아이콘을 선택하여 사이드 메뉴를 여세요.

1.  사이드 메뉴에서 **대시보드** 링크 아래에 **데이터 소스**라는 링크가 있습니다.

1.  상단 헤더에서 **\$1 데이터 소스 추가** 버튼을 선택하세요.

1.  **유형** 드롭다운 목록에서 **MySQL**을 선택하세요.

### 데이터 소스 옵션



|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  Host  |  MySQL 인스턴스의 IP 주소/호스트 이름 및 선택적 포트. | 
|  Database  |  MySQL 데이터베이스의 이름. | 
|  User  |  데이터베이스 사용자의 로그인/사용자 이름. | 
|  Password  |  데이터베이스 사용자 암호. | 
|  Max open  |  데이터베이스에 대한 최대 열린 연결 수, 기본값 unlimited(Grafana v5.4 이상). | 
|  Max idle  |  유휴 연결 풀의 최대 연결 수, 기본값: 2(Grafana v5.4 이상). | 
|  Max lifetime  |  연결을 재사용할 수 있는 최대 시간(초 단위, 기본값 14400/4시간). 이 값은 항상 MySQL에서 구성된 [wait\$1timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_wait_timeout)보다 낮아야 합니다(Grafana v5.4 이상). | 

### 최소 시간 간격


 `$_interval` `$_interval_ms` 변수의 하한. 데이터가 1분마다 기록되는 경우 `1m`과 같이 쓰기 빈도로 설정하는 것이 좋습니다. 이 옵션은 대시보드 패널의 데이터 소스 옵션에서 재정의/구성할 수도 있습니다. 이 값은 숫자 및 유효한 시간 식별자의 순서로 형식이 지정되어야 **합니다**(예: `1m`(1분) 또는 `30s`(30초)). 다음 시간 식별자가 지원됩니다.


|  식별자  |  설명  | 
| --- | --- | 
|  y  |  연도  | 
|  M  |  월  | 
|  w  |  주  | 
|  d  |  일  | 
|  h  |  시간  | 
|  m  |  분  | 
|  s  |  초  | 
|  ms  |  밀리초  | 

### 데이터베이스 사용자 권한


**중요**  
 데이터 소스를 추가할 때 지정하는 데이터베이스 사용자에게는 쿼리하려는 지정된 데이터베이스 및 테이블에 대한 SELECT 권한만 부여해야 합니다. Grafana에서는 쿼리가 안전한지 검증하지 않습니다. 쿼리에는 모든 SQL 문이 포함될 수 있습니다. 예를 들어 `USE otherdb;` 및 `DROP TABLE user;`와 같은 명령문이 실행됩니다. 이를 방지하려면 제한된 권한의 특정 MySQL 사용자를 생성하는 것이 좋습니다.

 다음 코드 예제에서는 제한된 권한의 특정 MySQL 사용자를 생성하는 방법을 보여줍니다.

```
 CREATE USER 'grafanaReader' IDENTIFIED BY 'password';
 GRANT SELECT ON mydatabase.mytable TO 'grafanaReader';
```

 추가 데이터베이스 및 테이블에 대한 액세스 권한을 부여하기 위해 원하는 경우 데이터베이스 또는 테이블 대신 와일드카드 문자(`*`)를 사용할 수 있습니다.

## 쿼리 편집기


 MySQL 쿼리 편집기는 패널의 편집 모드일 때 지표 탭에서 찾을 수 있습니다. 패널 제목, **편집**을 차례로 선택하여 편집 모드로 전환합니다.

 쿼리 편집기에는 패널 편집 모드에서 쿼리가 실행된 후 표시되는 **생성된 SQL** 링크가 있습니다. 이를 선택하면 실행된 원시 보간 SQL 문자열이 확장되고 표시됩니다.

### 테이블, 시간 열 및 지표 열 선택(FROM)


 처음 편집 모드로 전환하거나 새 쿼리를 추가하면 Grafana는 타임스탬프 열과 숫자 열이 있는 첫 번째 테이블로 쿼리 빌더를 미리 채우려고 시도합니다.

 FROM 필드에서 Grafana는 구성된 데이터베이스에 있는 테이블을 제안합니다. 데이터베이스 사용자가 액세스할 수 있는 다른 데이터베이스에서 테이블 또는 보기를 선택하려면 `otherDb.metrics`와 같은 정규화된 이름(database.table)을 수동으로 입력할 수 있습니다.

 시간 열 필드는 시간 값을 포함하는 열의 이름을 나타냅니다. 지표 열 필드의 값 선택은 선택 사항입니다. 값을 선택하면 지표 열 필드가 시리즈 이름으로 사용됩니다.

 지표 열 제안에는 텍스트 데이터 유형(text, tinytext, mediumtext, longtext, varchar, char)이 있는 열만 포함됩니다. 데이터 유형이 서로 다른 열을 지표 열로 사용하려면 캐스트(`CAST(numericColumn as CHAR)`)와 함께 열 이름을 입력할 수 있습니다. `CONCAT(column1, " ", CAST(numericColumn as CHAR))`과 같은 텍스트 데이터 유형으로 평가하는 지표 열 필드에 임의의 SQL 표현식을 입력할 수도 있습니다.

### 열 및 집계 함수(SELECT)


 `SELECT` 행에서 사용할 열과 함수를 지정할 수 있습니다. 열 필드에서 `column1 * column2 / column3`과 같은 열 이름 대신 임의의 표현식을 작성할 수 있습니다.

 집계 함수를 사용하는 경우 결과 세트를 그룹화해야 합니다. 집계 함수를 추가하면 편집기에서 자동으로 `GROUP BY time`을 추가합니다.

 더하기 버튼을 선택하고 메뉴에서 `Column`을 선택하여 값 열을 추가할 수 있습니다. 그래프 패널에 다중 값 열이 별도의 시리즈로 작성됩니다.

### 데이터 필터링(WHERE)


 필터를 추가하려면 `WHERE` 조건 오른쪽에 있는 더하기 아이콘을 선택합니다. 필터에서 선택하고 `Remove`를 선택하여 필터를 제거할 수 있습니다. 현재 선택한 시간 범위에 대한 필터가 새 쿼리에 자동으로 추가됩니다.

### 그룹화 기준


 시간 또는 기타 열을 기준으로 그룹화하려면 GROUP BY 행 끝에 있는 더하기 아이콘을 선택합니다. 제안 드롭다운 목록에는 현재 선택한 테이블의 텍스트 열만 표시되지만 열을 수동으로 입력할 수 있습니다. 항목을 선택하고 `Remove`를 선택하여 그룹을 제거할 수 있습니다.

 그룹을 추가하는 경우 선택한 모든 열에 집계 함수가 적용되어야 합니다. 쿼리 빌더는 그룹화를 추가할 때 집계 함수 없이 모든 열에 집계 함수를 자동으로 추가합니다.

#### 갭 채우기


 Grafana에서 시간별로 그룹화할 때 누락된 값을 채울 수 있습니다. 시간 함수는 두 개의 인수를 허용합니다. 첫 번째 인수는 그룹화 기준으로 사용하려는 기간이고 두 번째 인수는 Grafana에서 누락된 항목을 채우려는 값입니다.

### 텍스트 편집기 모드(원시)


 햄버거 아이콘을 선택하고 **편집기 모드 전환**을 선택하거나 쿼리 아래에서 **SQL 편집**을 선택하여 원시 쿼리 편집기 모드로 전환할 수 있습니다.

**참고**  
 원시 쿼리 편집기를 사용하는 경우 쿼리에 최소한 `ORDER BY time` 및 필터가 반환된 시간 범위에 있는지 확인합니다.

## 매크로


 구문을 단순화하고 날짜 범위 필터와 같은 동적 부분을 허용하기 위해 쿼리에 매크로가 포함될 수 있습니다.


|  매크로 예제  |  설명  | 
| --- | --- | 
|  \$1\$1\$1time(dateColumn)  |  UNIX 타임스탬프로 변환하고 열 이름을 time\$1sec으로 바꾸는 표현식으로 대체됩니다(예: UNIX\$1TIMESTAMP(dateColumn) as time\$1sec). | 
|  \$1\$1\$1timeEpoch(dateColumn)  |  UNIX 타임스탬프로 변환하고 열 이름을 time\$1sec으로 바꾸는 표현식으로 대체됩니다(예: UNIX\$1TIMESTAMP(dateColumn) as time\$1sec). | 
|  \$1\$1\$1timeFilter(dateColumn)  |  지정된 열 이름을 사용하여 시간 범위 필터로 대체됩니다. 예: dateColumn BETWEEN FROM\$1UNIXTIME(1494410783) AND FROM\$1UNIXTIME(1494410983). | 
|  \$1\$1\$1timeFrom()  |  현재 활성 시간 선택의 시작으로 대체됩니다. 예: FROM\$1UNIXTIME(1494410783). | 
|  \$1\$1\$1timeTo()  |  현재 활성 시간 선택의 끝으로 대체됩니다. 예: FROM\$1UNIXTIME(1494410983). | 
|  \$1\$1\$1timeGroup(dateColumn,'5m')  |  GROUP BY 절에서 사용할 수 있는 표현식으로 대체됩니다. 예: cast(cast(UNIX\$1TIMESTAMP(dateColumn)/(300) as signed)300 as signed),\$1  | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', 0)  |  이전 행과 동일하지만 채우기 파라미터가 있는 경우 해당 시리즈의 누락된 포인트가 Grafana에 의해 추가되고 0이 값으로 사용됩니다. | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', NULL)  |  위와 동일하지만 NULL이 누락 포인트의 값으로 사용됩니다. | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', previous)  |  위와 동일하지만 해당 시리즈의 이전 값이 채우기 값으로 사용됩니다. 아직 값이 보이지 않으면 NULL이 사용됩니다(Grafana 5.3 이상에서만 사용 가능). | 
|  \$1\$1\$1timeGroupAlias(dateColumn,'5m')  |  \$1\$1\$1timeGroup과 동일하지만 추가된 열 별칭으로 대체됩니다(Grafana 5.3 이상에서만 사용 가능). | 
| \$1\$1\$1unixEpochFilter(dateColumn) | 지정된 열 이름을 사용하여 시간 범위 필터(Unix 타임스탬프로 시간이 표시됨)로 대체됩니다. 예를 들어 dateColumn > 1494410783 AND dateColumn < 1494497183입니다. | 
| \$1\$1\$1unixEpochFrom() | 현재 활성 시간 선택의 시작(Unix 타임스탬프 형식)으로 대체됩니다. 예를 들어 1494410783입니다. | 
| \$1\$1\$1unixEpochTo() | 현재 활성 시간 선택의 끝(Unix 타임스탬프 형식)으로 대체됩니다. 예를 들어 1494497183입니다. | 
| \$1\$1\$1unixEpochNanoFilter(dateColumn) | 지정된 열 이름을 사용하여 시간 범위 필터(나노초 타임스탬프로 시간이 표시됨)로 대체됩니다. 예를 들어 dateColumn > 1494410783152415214 AND dateColumn < 1494497183142514872입니다. | 
| \$1\$1\$1unixEpochNanoFrom() | 현재 활성 시간 선택의 시작(나노초 타임스탬프 형식)으로 대체됩니다. 예를 들어 1494410783152415214입니다. | 
| \$1\$1\$1unixEpochNanoTo() | 현재 활성 시간 선택의 끝(나노초 타임스탬프 형식)으로 대체됩니다. 예를 들어 1494497183142514872입니다. | 
| \$1\$1\$1unixEpochGroup(dateColumn,"5m", [fillmode]) | \$1\$1\$1timeGroup과 동일하지만 시간이 Unix 타임스탬프로 저장됩니다(Grafana 5.3 이상에서만 사용 가능). | 
| \$1\$1\$1unixEpochGroupAlias(dateColumn,"5m", [fillmode])` | 위와 동일하지만 열 별칭도 추가합니다(Grafana 5.3 이상에서만 사용 가능). | 

 쿼리 편집기에는 패널 편집 모드에서 쿼리가 실행된 후 표시되는 **생성된 SQL** 링크가 있습니다. 이를 선택하면 실행된 원시 보간 SQL 문자열이 확장되고 표시됩니다.

## 테이블 쿼리


 **형식** 쿼리 옵션이 **테이블**로 설정된 경우 기본적으로 모든 유형의 SQL 쿼리를 수행할 수 있습니다. 테이블 패널에는 쿼리에서 반환하는 열 및 행의 결과가 자동으로 표시됩니다.

 다음 코드에서는 쿼리 예시를 보여줍니다.

```
SELECT
  title as 'Title',
  user.login as 'Created By' ,
  dashboard.created as 'Created On'
 FROM dashboard
INNER JOIN user on user.id = dashboard.created_by
WHERE $__timeFilter(dashboard.created)
```

 일반 `as` SQL 열 선택 구문을 사용하여 테이블 패널 열의 이름을 제어할 수 있습니다.

## 시계열 쿼리


 예를 들어 그래프 패널에서 사용하기 위해 **형식**을 **시계열**로 설정한 경우 쿼리는 SQL datetime 또는 Unix 에포크를 나타내는 숫자 데이터 유형을 반환하는 `time`이라는 열을 반환해야 합니다. `time` 및 `metric`을 제외한 모든 열은 값 열로 처리됩니다. 값 열의 지표 이름으로 사용되는 `metric` 열을 반환할 수 있습니다. 다중 값 열과 `metric` 열을 반환하면 이 열이 시리즈 이름의 접두사로 사용됩니다(Grafana 5.3 이상에서만 사용 가능).

 시계열 쿼리의 결과 세트는 시간별로 정렬해야 합니다.

 다음 코드 예제에서는 `metric` 열을 보여줍니다.

```
SELECT
  $__timeGroup(time_date_time,'5m'),
  min(value_double),
  'min' as metric
FROM test_data
WHERE $__timeFilter(time_date_time)
GROUP BY time
ORDER BY time
```

 다음 코드 예제에서는 \$1\$1\$1timeGroup 매크로의 채우기 파라미터를 사용하여 대신 null 값을 0으로 변환하는 방법을 보여줍니다.

```
SELECT
  $__timeGroup(createdAt,'5m',0),
  sum(value_double) as value,
  measurement
FROM test_data
WHERE
  $__timeFilter(createdAt)
GROUP BY time, measurement
ORDER BY time
```

 다음 코드 예제에서는 여러 열을 보여줍니다.

```
SELECT
  $__timeGroup(time_date_time,'5m'),
  min(value_double) as min_value,
  max(value_double) as max_value
FROM test_data
WHERE $__timeFilter(time_date_time)
GROUP BY time
ORDER BY time
```

시간 범위 및 패널 너비를 기반으로 하는 동적 그룹화 기준 시간에 대한 지원은 없습니다.

## 템플릿 지정


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿](templates-and-variables.md#templates) 섹션을 참조하세요.

### 쿼리 변수


 `Query` 유형의 템플릿 변수를 추가하는 경우 드롭다운 선택 상자로 표시되는 측정 이름, 키 이름 또는 키 값과 같은 항목을 반환할 수 있는 MySQL 쿼리를 작성할 수 있습니다.

 예를 들어 템플릿 지정 변수 **쿼리 설정에서 이와 같은 쿼리를 지정하여 `hostname` 열의 모든 값을 포함하는 변수를 가질 수 있습니다.

```
SELECT hostname FROM my_host
```

 쿼리는 여러 열을 반환할 수 있으며 Grafana는 이 열에서 목록을 자동으로 생성합니다. 예를 들어 다음 쿼리는 `hostname` 및 `hostname2`의 값이 포함된 목록을 반환합니다.

```
SELECT my_host.hostname, my_other_host.hostname2 FROM my_host JOIN my_other_host ON my_host.city = my_other_host.city
```

 쿼리에서 `$__timeFilter(column)`와 같은 시간 범위 종속 매크로를 사용하려면 템플릿 변수의 새로 고침 모드를 *시간 범위 변경 시*로 설정해야 합니다.

```
SELECT event_name FROM event_log WHERE $__timeFilter(time_column)
```

 또 다른 옵션으로 키/값 변수를 생성할 수 있는 쿼리가 있습니다. 쿼리에서 `__text` 및 `__value`라는 두 개의 열을 반환해야 합니다. `__text` 열 값은 고유해야 합니다(고유하지 않은 경우 첫 번째 값이 사용됨). 드롭다운 목록의 옵션은 텍스트 및 값을 포함합니다. 이를 통해 친숙한 이름(텍스트) 및 ID(값)를 지정할 수 있습니다.

다음 코드 예제에서는 `hostname`을 텍스트로, `id`를 값으로 사용하는 쿼리를 보여줍니다.

```
SELECT hostname AS __text, id AS __value FROM my_host
```

 중첩 변수를 생성할 수도 있습니다. 예를 들어 다른 `region` 변수가 있는 경우. 그런 다음, 호스트 변수가 이와 같은 쿼리를 사용하여 현재 선택한 리전의 호스트만 표시하도록 할 수 있습니다(`region`이 다중 값 변수인 경우 여러 값과 일치시키는 `=`보다 `IN` 비교 연산자 사용).

```
SELECT hostname FROM my_host  WHERE region IN($region)
```

#### `__searchFilter`를 사용하여 쿼리 변수에서 결과 필터링


 쿼리 필드에서 `__searchFilter`를 사용하면 드롭다운 선택 상자에 입력한 내용을 기반으로 쿼리 결과를 필터링합니다. 사용자가 아무 것도 입력하지 않은 경우 `__searchFilter`의 기본값은 `%`입니다.

**참고**  
 Grafana에서는 이를 자동으로 수행하지 않으므로 `__searchFilter` 표현식을 따옴표로 묶는 것이 중요합니다.

 다음 예제에서는 사용자가 드롭다운 선택 상자에 텍스트를 입력하는 동안 `__searchFilter`를 쿼리 필드의 일부로 사용하여 `hostname` 검색을 활성화하는 방법을 보여줍니다.

```
SELECT hostname FROM my_host  WHERE hostname LIKE '$__searchFilter'
```

### 쿼리에서 변수 사용


 Grafana 4.3.0에서 4.6.0까지 템플릿 변수는 항상 자동으로 따옴표로 묶이기 때문에 문자열 값인 경우 where 절에서 따옴표로 묶지 않습니다.

 Grafana 4.7.0부터 템플릿 변수 값은 템플릿 변수가 `multi-value`인 경우에만 따옴표로 묶습니다.

 변수가 다중 값 변수인 경우 여러 값과 일치시키는 `=`보다 `IN` 비교 연산자를 사용합니다.

 두 가지 구문이 있습니다.

 `$<varname>`: 템플릿 변수 이름이 `hostname`인 예제: 

```
SELECT
  UNIX_TIMESTAMP(atimestamp) as time,
  aint as value,
  avarchar as metric
FROM my_table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp ASC
```

 `[[varname]]`: 템플릿 변수 이름이 `hostname`인 예제: 

```
SELECT
  UNIX_TIMESTAMP(atimestamp) as time,
  aint as value,
  avarchar as metric
FROM my_table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp ASC
```

#### 다중 값 변수에 대한 따옴표 기능 끄기


 Grafana에서는 다중 값 변수에 대해 따옴표로 묶고 쉼표로 구분된 문자열을 자동으로 생성합니다. 예를 들어, `server01` 및 `server02`를 선택하면 `'server01', 'server02'` 형식으로 지정됩니다. 이 기능을 끄려면 변수에 csv 형식 지정 옵션을 사용합니다.

 `${servers:csv}` 

 변수 형식 지정 옵션에 대한 자세한 내용은 [고급 변수 형식 옵션](templates-and-variables.md#advanced-variable-format-options) 섹션을 참조하세요.

## Annotations


 주석을 사용하여 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 대시보드 메뉴/주석 보기를 통해 주석 쿼리를 추가합니다. 자세한 내용은 단원을 참조하십시오.

 다음 코드 예제에서는 에포크 값이 있는 시간 열을 사용하는 쿼리를 보여줍니다.

```
SELECT
  epoch_time as time,
  metric1 as text,
  CONCAT(tag1, ',', tag2) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

다음 코드 예제에서는 에포크 값을 포함하는 time 및 timeend 열을 사용하는 리전 쿼리를 보여줍니다.

**참고**  
 Grafana v6.6 이상에서만 사용할 수 있습니다.

```
SELECT
  epoch_time as time,
  epoch_timeend as timeend,
  metric1 as text,
  CONCAT(tag1, ',', tag2) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

 다음 코드 예제에서는 기본 SQL 날짜/시간 데이터 유형의 시간 열을 사용하는 쿼리를 보여줍니다.

```
SELECT
  native_date_time as time,
  metric1 as text,
  CONCAT(tag1, ',', tag2) as tags
FROM
  public.test_data
WHERE
  $__timeFilter(native_date_time)
```


|  이름  |  설명  | 
| --- | --- | 
|  time  |  날짜/시간 필드의 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  timeend  |  종료 날짜/시간 필드의 선택적 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  text  |  이벤트 설명 필드. | 
|  tags  |  이벤트 태그에 대해 쉼표로 구분된 문자열로 사용할 선택적 필드 이름. | 

## 알림


 시계열 쿼리는 알림 조건에서 작동해야 합니다. 테이블 형식의 쿼리는 알림 규칙 조건에서 아직 지원되지 않습니다.

# OpenSearch 데이터 소스에 연결
OpenSearch

**참고**  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

Amazon Managed Grafana를 사용하면 오픈 소스 [OpenSearch](https://opensearch.org/docs/)(또는 레거시 Elasticsearch)를 데이터 소스로 추가할 수 있습니다. 여러 유형의 단순하거나 복잡한 OpenSearch 쿼리를 수행하여 OpenSearch에 저장된 로그 또는 지표를 시각화할 수 있습니다. OpenSearch에 저장된 로그 이벤트로 그래프에 주석을 작성할 수도 있습니다.

## OpenSearch를 데이터 소스로 추가


**참고**  
OpenSearch 데이터 소스를 추가하려면 Grafana IAM 계정을 ALL\$1ACCESS 및 SECURITY\$1MANAGER 역할에 추가해야 합니다.

1.  상단 헤더에서 Grafana 아이콘을 선택하여 사이드 메뉴를 여세요.

1.  사이드 메뉴에서 **대시보드** 링크 아래에 이름 지정된 **데이터 소스** 링크가 있습니다.

1.  상단 헤더에서 **\$1 데이터 소스 추가** 버튼을 선택하세요.

1.  **유형** 드롭다운 목록에서 **OpenSearch**를 선택하세요.

**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.


|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  Url  |  OpenSearch 서버의 HTTP 프로토콜, IP 및 포트. | 
|  Access  |  서버(기본값) = Grafana 백엔드/서버에서 URL에 액세스할 수 있어야 합니다. 브라우저 = 브라우저에서 URL에 액세스할 수 있어야 합니다. | 

 액세스 모드는 데이터 소스에 대한 요청을 처리하는 방법을 제어합니다. 다른 내용이 없는 경우 서버가 선호되는 방법이어야 합니다.

### 서버 액세스 모드(기본값)


 모든 요청은 브라우저에서 Grafana로 이루어집니다. 그러면 요청을 데이터 소스로 전달하여 가능한 교차 오리진 리소스 공유(CORS) 요구 사항을 우회합니다. 이 액세스 모드를 선택하면 Grafana 백엔드 또는 서버에서 URL에 액세스할 수 있어야 합니다.

### 브라우저(직접) 액세스


 Amazon Managed Grafana는 OpenSearch 데이터 소스에 대한 브라우저 직접 액세스를 지원하지 않습니다.

### 인덱스 설정


 여기서 `time field`의 기본값을 지정하고 OpenSearch 인덱스의 이름을 지정할 수 있습니다. 인덱스 이름 또는 와일드카드 문자에 대한 시간 패턴을 사용할 수 있습니다.

### OpenSearch/Elasticsearch 버전


버전 드롭다운 메뉴에서 OpenSearch 또는 레거시 Elasticsearch 버전을 지정합니다. 각 버전에 대해 쿼리가 구성되는 방식에 차이가 있기 때문에 버전이 중요합니다. 현재 Grafana에서는 OpenSearch 1.0.x를 지원합니다. 지원되는 Elasticsearch 버전은 `2.0+`, `5.0+`, `5.6+`, `6.0+`, `7.0+`입니다. `5.6+` 값은 버전 5.6 이상, 6.0 미만을 의미합니다. `6.0+` 값은 버전 6.0 이상, 7.0 미만을 의미합니다. 마지막으로 `7.0+`는 버전 7.0 이상, 8.0 미만을 의미합니다.

### 최소 시간 간격


 자동 그룹화 기준 시간 간격의 하한. 데이터가 1분마다 기록되는 경우 `1m`과 같이 쓰기 빈도로 설정하는 것이 좋습니다. 이 옵션은 대시보드 패널의 데이터 소스 옵션에서 재정의/구성할 수도 있습니다. 이 값은 숫자 및 유효한 시간 식별자의 순서로 형식이 지정되어야 **합니다**(예: `1m`(1분) 또는 `30s`(30초)). 다음 시간 식별자가 지원됩니다.


|  식별자  |  설명  | 
| --- | --- | 
|  y  |  연도  | 
|  M  |  월  | 
|  w  |  주  | 
|  d  |  일  | 
|  h  |  시간  | 
|  m  |  분  | 
|  s  |  초  | 
|  ms  |  밀리초  | 

### 로그


[탐색](explore.md)에서 로그를 시각화할 때 로그 메시지 및 로그 수준에 사용할 필드를 결정하는 데이터 소스 설정 페이지에서 선택적으로 두 개의 파라미터 `Message field name` 및 `Level field name`을 구성할 수 있습니다.

 예를 들어 로그를 OpenSearch로 전송하기 위해 Filebeat의 기본 설정을 사용하는 경우 다음 구성이 작동해야 합니다.
+  **메시지 필드 이름:** 메시지 
+  **수준 필드 이름:** fields.level 

### 데이터 링크


 데이터 링크는 지정된 필드에서 링크를 생성하고 해당 링크는 탐색의 로그 보기에서 액세스할 수 있습니다.

 각 데이터 링크 구성은 다음으로 구성됩니다.
+ **필드** - 데이터 링크에서 사용하는 필드의 이름.
+ **URL/쿼리 ** - 링크가 외부인 경우 전체 링크 URL을 입력합니다. 링크가 내부 링크인 경우 이 입력은 대상 데이터 소스에 대한 쿼리 역할을 합니다. 두 경우 모두 필드의 값을 `${__value.raw }` 매크로로 보간할 수 있습니다.
+ **내부 링크** - 링크가 내부 또는 외부 링크인 경우 선택합니다. 내부 링크인 경우 데이터 소스 선택기를 사용하여 대상 데이터 소스를 선택할 수 있습니다. 추적 데이터 소스만 지원됩니다.

## OpenSearch 데이터 소스 사용


### 지표 쿼리 편집기


 OpenSearch 쿼리 편집기를 사용하면 여러 지표를 선택하고 여러 용어 또는 필터를 기준으로 그룹화할 수 있습니다. 오른쪽에 있는 더하기 및 빼기 아이콘을 사용하여 지표 또는 그룹화 기준 절을 추가/제거합니다. 일부 지표 및 그룹화 기준 절에 옵션이 있습니다. 옵션 텍스트를 선택하여 보려는 행을 확장하고 지표 또는 그룹화 기준 옵션을 편집합니다.

### 시리즈 이름 지정 및 별칭 패턴


 `Alias` 입력 필드를 통해 시계열의 이름을 제어할 수 있습니다.


|  패턴  |  설명  | 
| --- | --- | 
|  \$1\$1term fieldname\$1\$1  |  그룹화 기준이라는 용어의 값으로 대체됩니다. | 
|  \$1\$1metric\$1\$1  |  지표 이름으로 대체됩니다(예: 평균, 최소, 최대). | 
|  \$1\$1field\$1\$1  |  지표 필드 이름으로 대체되었습니다. | 

### 파이프라인 지표


일부 지표 집계를 파이프라인 집계라고 합니다. 예를 들어 *이동 평균* 및 *파생*이 있습니다. OpenSearch 파이프라인 지표에는 기반으로 사용할 다른 지표가 필요합니다. 지표 옆의 눈 아이콘을 사용하여 지표가 그래프에 표시되지 않도록 숨깁니다. 이는 파이프라인 지표에 사용할 쿼리에만 있는 지표에 유용합니다.

### 템플릿 지정


지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

#### 쿼리 변수


 OpenSearch 데이터 소스는 *쿼리* 변수의 *쿼리* 필드에 사용할 수 있는 두 가지 유형의 쿼리를 지원합니다. 쿼리는 사용자 지정 JSON 문자열을 사용하여 작성됩니다.


|  Query  |  설명  | 
| --- | --- | 
|  \$1"find": "fields", "type": "keyword"\$1  |  인덱스 유형이 keyword인 필드 이름 목록을 반환합니다. | 
|  \$1"find": "terms", "field": "@hostname", "size": 1000\$1  |  용어 집계를 사용하여 필드의 값 목록을 반환합니다. 쿼리는 현재 대시보드 시간 범위를 쿼리의 시간 범위로 사용합니다. | 
|  \$1"find": "terms", "field": "@hostname", "query": '<lucene query>'\$1  |  용어 집계 및 지정된 Lucene 쿼리 필터를 사용하여 필드의 값 목록을 반환합니다. 쿼리는 현재 대시보드 시간 범위를 쿼리의 시간 범위로 사용합니다. | 

용어 쿼리의 기본 크기 제한은 500입니다. 사용자 지정 제한을 설정하려면 쿼리에서 크기 속성을 설정하세요. 쿼리 내부에서 기타 변수를 사용할 수 있습니다. 다음 코드 예제에서는 `$host` 변수에 대한 쿼리 정의를 보여줍니다.

```
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
```

이전 예제에서는 쿼리 정의 내에 이름이 `$source`인 다른 변수를 사용합니다. 드롭다운 목록을 통해 `$source` 변수의 현재 값을 변경할 때마다 `$host` 변수 업데이트가 시작됩니다. 업데이트 후 `$host` 변수에는 이 경우 `@source` 문서 속성에서 필터링된 호스트 이름만 포함됩니다.

이러한 쿼리는 기본적으로 용어 순서로 반환됩니다(그런 다음, 모든 변수에 대해 사전순 또는 숫자로 정렬할 수 있음). 문서 수를 기준으로 정렬된 용어 목록(상위 N개의 값 목록)을 생성하려면 `doc_count`의 `orderBy` 속성을 추가합니다. 그러면 내림차순 정렬이 자동으로 선택됩니다. doc\$1count(하위 N개의 목록)와 함께 `asc`를 사용하려면 `order: "asc"`를 설정하면 되지만 문서 수에 대한 오류가 증가하므로 사용하지 않는 것이 좋습니다. 문서 수 순서로 용어를 유지하려면 변수의 **정렬** 드롭다운 목록을 **비활성화됨**으로 설정합니다. 또는 여전히 **사전순**을 사용하여 다시 정렬할 수도 있습니다.

```
{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}
```

#### 쿼리에서 변수 사용


 두 가지 구문이 있습니다.
+  `$<varname>` 예: @hostname:\$1hostname 
+  `[[varname]]` 예: @hostname:[[hostname]] 

 왜 두 가지 방법이 있을까요? 첫 번째 구문은 읽고 쓰기가 더 쉽지만 단어 중간에 변수를 사용할 수는 없습니다. *다중 값* 또는 *모든 값 포함* 옵션이 활성화되면 Grafana는 레이블을 일반 텍스트에서 Lucene 호환 조건으로 변환합니다.

 이전 예제에서는 `$hostname` 변수를 사용하여 `@hostname` 속성을 기반으로 문서를 필터링하는 Lucene 쿼리를 사용했습니다. 또한 *용어* 그룹화 기준 필드 입력에서 변수를 사용했습니다. 이렇게 하면 변수를 사용하여 데이터 그룹화 방법을 빠르게 변경할 수 있습니다.

### Annotations


주석을 사용하면 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 대시보드 메뉴/주석 보기를 통해 주석 쿼리를 추가합니다. Grafana는 OpenSearch 인덱스에서 주석 이벤트를 쿼리할 수 있습니다. 자세한 내용은 [Annotations](dashboard-annotations.md) 단원을 참조하십시오.


|  이름  |  설명  | 
| --- | --- | 
|  Query  |  검색 쿼리를 비워 두거나 Lucene 쿼리를 지정할 수 있습니다. | 
|  Time  |  시간 필드의 이름. 날짜 필드여야 합니다. | 
|  Time End  |  시간 종료 필드의 선택적 이름은 날짜 필드여야 합니다. 설정된 경우 주석은 시간과 종료 시간 사이의 리전으로 표시됩니다. | 
|  Text  |  이벤트 설명 필드. | 
|  Tags  |  이벤트 태그에 사용할 선택적 필드 이름(배열이 또는 CSV 문자열일 수 있음). | 

### 로그 쿼리


 OpenSearch에서 로그 데이터 쿼리 및 표시는 탐색에서 사용할 수 있습니다. 로그를 표시하려면 OpenSearch 데이터 소스를 선택한 다음, 선택적으로 Lucene 쿼리를 입력하세요. 자세한 내용은 [탐색](explore.md) 단원을 참조하십시오.

#### 로그 쿼리


 결과가 반환되면 로그 패널에 로그 행 목록 및 막대 차트가 표시됩니다. 이때 막대 차트에서는 x축은 시간, y축은 빈도 또는 수를 표시합니다.

#### 로그 메시지 필터링


 선택적으로 쿼리 필드에 Lucene 쿼리를 입력하여 로그 메시지를 필터링합니다. 예를 들어 기본 Filebeat 설정을 사용하면 오류 로그 메시지만 표시하기 위해 `fields.level:error`를 사용할 수 있습니다.

# OpenTSDB 데이터 소스에 연결
OpenTSDB

 Amazon Managed Grafana는 OpenTSDB에 대한 고급 지원을 제공합니다.

## 데이터 소스 추가


1.  상단 헤더에서 Grafana 아이콘을 선택하여 사이드 메뉴를 여세요.

1.  사이드 메뉴에서 **대시보드** 링크 아래에 **데이터 소스** 링크가 있습니다.

1.  상단 헤더에서 **\$1 데이터 소스 추가** 버튼을 선택하세요.

1.  **유형** 드롭다운 목록에서 **OpenTSDB**를 선택하세요.

**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.


|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  Url  |  opentsdb 서버의 HTTP 프로토콜, IP 및 포트(기본 포트는 일반적으로 4242). | 
|  Access  |  서버(기본값) = Grafana 백엔드/서버에서 URL에 액세스할 수 있어야 합니다. | 
|  Version  |  버전 = opentsdb 버전, <=2.1 또는 2.2. | 
|  Resolution  |  opentsdb의 지표에는 초 또는 밀리초 단위의 데이터 포인트가 있을 수 있습니다. | 

## 쿼리 편집기


 제목을 선택하여 편집 모드에서 그래프를 엽니다. 데이터 소스의 버전이 <=2.1 또는 =2.2인 경우 쿼리 편집기는 달라집니다. 이전 버전에서는 OpenTSDB를 쿼리하는 데 태그만 사용할 수 있습니다. 그러나 이후 버전에서는 필터와 태그를 사용하여 opentsdb를 쿼리할 수 있습니다. 채우기 정책도 OpenTSDB 2.2에서 도입되었습니다.

**참고**  
 OpenTSDB 2.2 데이터 소스를 사용하는 동안 필터 또는 태그는 상호 배타적이므로 둘 중 하나를 사용해야 합니다. 함께 사용하면 이상한 결과를 제공할 수 있습니다.

### 자동 완성 제안 사용


 지표 이름, 태그 이름 및 태그 값을 입력하기 시작하면 해당 항목에 대해 강조 표시된 자동 완성 제안이 표시됩니다. 자동 완성은 OpenTSDB 제안 API가 활성화된 경우에만 작동합니다.

## 템플릿 지정 쿼리


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

### 쿼리 변수


 OpenTSDB 데이터 소스는 템플릿 변수 쿼리를 지원합니다. 즉, OpenTSDB에서 값을 가져오는 템플릿 변수를 생성할 수 있습니다. 예를 들어 지표 이름, 태그 이름 또는 태그 값이 이에 해당합니다.

 `query` 유형의 템플릿 변수와 함께 OpenTSDB를 사용하는 경우 조회에 다음 구문을 사용할 수 있습니다.


|  Query  |  설명  | 
| --- | --- | 
|  metrics(prefix)  |  특정 접두사가 있는 지표 이름(비어 있을 수 있음)을 반환합니다. | 
|  tag\$1names(cpu)  |  특정 CPU 지표의 태그 이름(즉, 키)을 반환합니다. | 
|  tag\$1values(cpu, hostname)  |  지표 CPU 및 태그 키 호스트 이름의 태그 값을 반환합니다. | 
|  suggest\$1tagk(prefix)  |  특정 접두사가 있는 모든 지표의 태그 이름(즉, 키)(비어 있을 수 있음)을 반환합니다. | 
|  suggest\$1tagv(prefix)  |  특정 접두사가 있는 모든 지표의 태그 값(비어 있을 수 있음)을 반환합니다. | 

 `Preview of values` 섹션에 템플릿 변수가 채워지지 않는 경우 조회에 OpenTSDB 서버 설정에서 `tsd.core.meta.enable_realtime_ts`를 활성화해야 합니다. 또한 OpenTSDB에서 기존 시계열 데이터의 메타데이터를 채우려면 OpenTSDB 서버에서 `tsdb uid metasync`를 실행해야 합니다.

### 중첩된 템플릿


 하나의 템플릿 변수를 사용하여 다른 템플릿 변수의 태그 값을 필터링할 수 있습니다. 첫 번째 파라미터는 지표 이름이고, 두 번째 파라미터는 태그 값을 찾아야 하는 태그 키이며, 그 후에는 다른 모든 종속 템플릿 변수입니다. 중첩된 템플릿 쿼리가 성공적으로 작동하도록 하기 위한 몇 가지 예제가 아래에 나와 있습니다.


|  Query  |  설명  | 
| --- | --- | 
|  tag\$1values(cpu, hostname, env=\$1env)  |  cpu 지표의 태그 값, 선택한 env 태그 값 및 태그 키 호스트 이름을 반환합니다. | 
|  tag\$1values(cpu, hostname, env=\$1env, region=\$1region)  |  cpu 지표의 태그 값, 선택한 env 태그 값, 선택한 리전 태그 값 및 태그 키 호스트 이름을 반환합니다. | 

 OpenTSDB 지표 쿼리에 대한 자세한 내용은 [OpenTSDB 설명서](https://opentsdb.net/docs/build/html/index.html)를 참조하세요.

# PostgreSQL 데이터 소스에 연결
PostgreSQL

 PostgreSQL 데이터 소스를 사용하여 Amazon Aurora PostgreSQL 데이터베이스의 데이터를 쿼리하고 시각화할 수 있습니다.

**중요**  
*Grafana 버전 8*에서는 Postgres, MySQL 및 Microsoft SQL Server 데이터 소스의 데이터 프레임에 대한 기본 데이터 구조를 변경합니다. 따라서 시계열 쿼리 결과가 와이드 형식으로 반환됩니다. 자세한 내용은 Grafana 데이터 프레임 설명서의 [Wide format](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format)을 참조하세요. 시각화가 버전 8 이전과 같이 작동하려면 몇 가지 수동 마이그레이션을 수행해야 할 수 있습니다. Github([Postgres/MySQL/MSSQL: Breaking change in v8.0 related to time series queries and ordering of data column](https://github.com/grafana/grafana/issues/35534))에서 한 가지 솔루션이 문서화되어 있습니다.  
*Grafana 버전 9*에서 PostgreSQL 데이터 소스는 이전 버전과 다르게 데이터베이스에 연결하기 위한 루트 인증서를 설정합니다. 워크스페이스를 버전 8에서 9로 업데이트하는 경우 연결 방법을 변경해야 할 수 있습니다. 자세한 정보는 [업데이트된 워크스페이스 관련 문제 해결](AMG-workspace-version-update-troubleshoot.md)을 참조하세요.

## 데이터 소스 추가


1.  상단 헤더에서 Grafana 아이콘을 선택하여 사이드 메뉴를 여세요.

1.  사이드 메뉴에서 **구성** 아이콘 아래에 **데이터 소스** 링크가 있습니다.

1.  상단 헤더에서 **\$1 데이터 소스 추가** 버튼을 선택하세요.

1.  **유형** 드롭다운 목록에서 **PostgreSQL**을 선택하세요.

### 데이터 소스 옵션



|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  Host  |  PostgreSQL 인스턴스의 IP 주소/호스트 이름 및 선택적 포트. 데이터베이스 이름은 포함하지 마세요. Postgres에 연결하기 위한 연결 문자열이 올바르지 않아 오류가 발생합니다. | 
|  Database  |  PostgreSQL 데이터베이스의 이름. | 
|  User  |  데이터베이스 사용자의 로그인/사용자 이름. | 
|  Password  |  데이터베이스 사용자의 암호  | 
|  SSL Mode  |  이 옵션은 보안 SSL TCP/IP 연결을 서버와 협상할지 여부 또는 해당 우선순위를 결정합니다. | 
|  Max open  |  데이터베이스에 대한 최대 열린 연결 수, 기본값 unlimited(Grafana v5.4 이상). | 
|  Max idle  |  유휴 연결 풀의 최대 연결 수, 기본값: 2(Grafana v5.4 이상). | 
|  Max lifetime  |  연결을 재사용할 수 있는 최대 시간(초 단위, 기본값 14400/4시간)(Grafana v5.4 이상). | 
|  Version  |  이 옵션은 쿼리 빌더에서 사용할 수 있는 함수를 결정합니다(Gafana 5.3 이상에서만 사용 가능). | 
|  TimescaleDB  |  TimescaleDB는 PostgreSQL 확장으로 빌드된 시계열 데이터베이스입니다. 활성화된 경우 Grafana는 \$1\$1\$1timeGroup 매크로에서 time\$1bucket을 사용하고 쿼리 빌더에서 TimescaleDB 특정 집계 함수를 표시합니다(Gafana 5.3 이상에서만 사용 가능). | 

### 최소 시간 간격


 `$_interval` `$_interval_ms` 변수의 하한. 데이터가 1분마다 기록되는 경우 `1m`과 같이 쓰기 빈도로 설정하는 것이 좋습니다. 이 옵션은 대시보드 패널의 데이터 소스 옵션에서 재정의/구성할 수도 있습니다. 이 값은 숫자 및 유효한 시간 식별자의 순서로 형식이 지정되어야 **합니다**(예: `1m`(1분) 또는 `30s`(30초)). 다음 시간 식별자가 지원됩니다.


|  식별자  |  설명  | 
| --- | --- | 
|  y  |  연도  | 
|  M  |  월  | 
|  w  |  주  | 
|  d  |  일  | 
|  h  |  시간  | 
|  m  |  분  | 
|  s  |  초  | 
|  ms  |  밀리초  | 

### 데이터베이스 사용자 권한


**중요**  
 데이터 소스를 추가할 때 지정하는 데이터베이스 사용자에게는 쿼리하려는 지정된 데이터베이스 및 테이블에 대한 SELECT 권한만 부여해야 합니다. Grafana에서는 쿼리가 안전한지 검증하지 않습니다. 쿼리에는 모든 SQL 문이 포함될 수 있습니다. 예를 들어 `DELETE FROM user;` 및 `DROP TABLE user;`와 같은 명령문이 실행됩니다. 이를 방지하려면 제한된 권한의 특정 PostgreSQL 사용자를 생성하는 것이 좋습니다.

다음 코드 예제에서는 제한된 권한의 특정 PostgreSQL 사용자를 생성하는 방법을 보여줍니다.

```
 CREATE USER grafanareader WITH PASSWORD 'password';
 GRANT USAGE ON SCHEMA schema TO grafanareader;
 GRANT SELECT ON schema.table TO grafanareader;
```

 사용자가 퍼블릭 역할에서 원치 않는 권한을 얻지 않도록 해야 합니다.

## 쿼리 편집기


 PostgreSQL 쿼리 편집기는 Graph 또는 Singlestat 패널의 편집 모드일 때 지표 탭에서 찾을 수 있습니다. 패널 제목, 편집을 차례로 선택하여 편집 모드로 전환합니다.

 쿼리 편집기에는 패널 편집 모드에서 쿼리가 실행된 후 표시되는 **생성된 SQL** 링크가 있습니다. 이를 선택하면 실행된 원시 보간 SQL 문자열이 확장되고 표시됩니다.

### 테이블, 시간 열 및 지표 열 선택(FROM)


 처음 편집 모드로 전환하거나 새 쿼리를 추가하면 Grafana는 타임스탬프 열과 숫자 열이 있는 첫 번째 테이블로 쿼리 빌더를 미리 채우려고 시도합니다.

 FROM 필드에서 Grafana는 데이터베이스 사용자의 `search_path`에 있는 테이블을 제안합니다. `search_path`에 없는 테이블 또는 보기를 선택하려면 `public.metrics`와 같은 정규화된 이름(schema.table)을 수동으로 입력할 수 있습니다.

 시간 열 필드는 시간 값을 포함하는 열의 이름을 나타냅니다. 지표 열 필드의 값 선택은 선택 사항입니다. 값을 선택하면 지표 열 필드가 시리즈 이름으로 사용됩니다.

 지표 열 제안에는 텍스트 데이터 유형(char,varchar,text)이 있는 열만 포함됩니다. 데이터 유형이 서로 다른 열을 지표 열로 사용하려면 캐스트(`ip::text`)와 함께 열 이름을 입력할 수 있습니다. `hostname || ' ' || container_name`과 같은 텍스트 데이터 유형으로 평가하는 지표 열 필드에 임의의 SQL 표현식을 입력할 수도 있습니다.

### 열, 기간 및 집계 함수(SELECT)


 `SELECT` 행에서 사용할 열과 함수를 지정할 수 있습니다. 열 필드에서 `column1 * column2 / column3`과 같은 열 이름 대신 임의의 표현식을 작성할 수 있습니다.

 쿼리 편집기에서 사용 가능한 함수는 데이터 소스를 구성할 때 선택한 PostgreSQL 버전에 따라 달라집니다. 집계 함수를 사용하는 경우 결과 세트를 그룹화해야 합니다. 집계 함수를 추가하면 편집기가 자동으로 `GROUP BY time`을 추가합니다.

편집기는 쿼리의 이 부분을 단순화하고 통합하려고 합니다.

더하기 버튼을 선택하고 메뉴에서 **열**을 선택하여 값 열을 더 추가할 수 있습니다. 그래프 패널에 다중 값 열이 별도의 시리즈로 작성됩니다.

### 데이터 필터링(WHERE)


 필터를 추가하려면 `WHERE` 조건 오른쪽에 있는 더하기 아이콘을 선택합니다. 필터를 선택하고 **제거**를 선택하여 필터를 제거할 수 있습니다. 현재 선택한 시간 범위에 대한 필터가 새 쿼리에 자동으로 추가됩니다.

### 그룹화 기준


 시간 또는 다른 열을 기준으로 그룹화하려면 GROUP BY 행 끝에 있는 더하기 아이콘을 선택합니다. 제안 드롭다운 목록에는 현재 선택한 테이블의 텍스트 열만 표시되지만 열을 수동으로 입력할 수 있습니다. 항목을 선택하고 **제거**를 선택하여 그룹을 제거할 수 있습니다.

 그룹을 추가하는 경우 선택한 모든 열에 집계 함수가 적용되어야 합니다. 쿼리 빌더는 그룹화를 추가할 때 집계 함수 없이 모든 열에 집계 함수를 자동으로 추가합니다.

#### 갭 채우기


 Amazon Managed Grafana에서 시간별로 그룹화할 때 누락된 값을 채울 수 있습니다. 시간 함수는 두 개의 인수를 허용합니다. 첫 번째 인수는 그룹화 기준으로 사용하려는 기간이고 두 번째 인수는 Grafana에서 누락된 항목을 채우려는 값입니다.

### 텍스트 편집기 모드(RAW)


 햄버거 아이콘을 선택하고 **편집기 모드 전환**을 선택하거나 쿼리 아래에서 **SQL 편집**을 선택하여 원시 쿼리 편집기 모드로 전환할 수 있습니다.

**참고**  
 원시 쿼리 편집기를 사용하는 경우 쿼리에 최소한 `ORDER BY time` 및 필터가 반환된 시간 범위에 있는지 확인합니다.

## 매크로


 쿼리 내에서 매크로를 사용하여 구문을 단순화하고 동적 부분을 허용할 수 있습니다.


|  매크로 예제  |  설명  | 
| --- | --- | 
|  \$1\$1\$1time(dateColumn)  |  UNIX 타임스탬프로 변환하고 열 이름을 time\$1sec으로 바꾸는 표현식으로 대체됩니다. 예: UNIX\$1TIMESTAMP(dateColumn) as time\$1sec. | 
|  \$1\$1\$1timeEpoch(dateColumn)  |  UNIX 타임스탬프로 변환하고 열 이름을 time\$1sec으로 바꾸는 표현식으로 대체됩니다. 예: UNIX\$1TIMESTAMP(dateColumn) as time\$1sec. | 
|  \$1\$1\$1timeFilter(dateColumn)  |  지정된 열 이름을 사용하여 시간 범위 필터로 대체됩니다. 예: dateColumn BETWEEN FROM\$1UNIXTIME(1494410783) AND FROM\$1UNIXTIME(1494410983). | 
|  \$1\$1\$1timeFrom()  |  현재 활성 시간 선택의 시작으로 대체됩니다. 예: FROM\$1UNIXTIME(1494410783). | 
|  \$1\$1\$1timeTo()  |  현재 활성 시간 선택의 끝으로 대체됩니다. 예: FROM\$1UNIXTIME(1494410983). | 
|  \$1\$1\$1timeGroup(dateColumn,'5m')  |  GROUP BY 절에서 사용할 수 있는 표현식으로 대체됩니다. 예: cast(cast(UNIX\$1TIMESTAMP(dateColumn)/(300) as signed)300 as signed),\$1  | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', 0)  |  이전 행과 동일하지만 채우기 파라미터가 있는 경우 해당 시리즈의 누락된 포인트가 Grafana에 의해 추가되고 0이 값으로 사용됩니다. | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', NULL)  |  위와 동일하지만 NULL이 누락 포인트의 값으로 사용됩니다. | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', previous)  |  위와 동일하지만 해당 시리즈의 이전 값이 채우기 값으로 사용됩니다. 아직 값이 보이지 않으면 NULL이 사용됩니다(Grafana 5.3 이상에서만 사용 가능). | 
|  \$1\$1\$1timeGroupAlias(dateColumn,'5m')  |  \$1\$1\$1timeGroup과 동일하지만 추가된 열 별칭으로 대체됩니다. | 
|  \$1\$1\$1unixEpochFilter(dateColumn) |  지정된 열 이름을 사용하여 시간 범위 필터(Unix 타임스탬프로 시간이 표시됨)로 대체됩니다. 예: \$1dateColumn > 1494410783 AND dateColumn < 1494497183\$1  | 
| \$1\$1\$1unixEpochFrom()`  | \$1 현재 활성 시간 선택의 시작(Unix 타임스탬프 형식)으로 대체됩니다. 예: \$11494410783\$1 | 
| \$1\$1\$1unixEpochTo() | 현재 활성 시간 선택의 끝(Unix 타임스탬프 형식)으로 대체됩니다. 예: \$11494497183\$1 | 
| \$1\$1\$1unixEpochNanoFilter(dateColumn) | 지정된 열 이름을 사용하여 시간 범위 필터(나노초 타임스탬프로 시간이 표시됨)로 대체됩니다. 예: \$1dateColumn > 1494410783152415214 AND dateColumn < 1494497183142514872\$1 | 
| \$1\$1\$1unixEpochNanoFrom() | 현재 활성 시간 선택의 시작(나노초 타임스탬프 형식)으로 대체됩니다. 예: \$11494410783152415214\$1 | 
| \$1\$1\$1unixEpochNanoTo() | 현재 활성 시간 선택의 끝(나노초 타임스탬프 형식)으로 대체됩니다. 예: \$11494497183142514872\$1 | 
| \$1\$1\$1unixEpochGroup(dateColumn,"5m", [fillmode]) | \$1\$1\$1timeGroup과 동일하지만 Unix 타임스탬프로 시간이 저장됩니다. | 

## 테이블 쿼리


 쿼리 옵션이 **형식: 테이블**로 설정된 경우 기본적으로 모든 유형의 SQL 쿼리를 수행할 수 있습니다. 테이블 패널에는 쿼리에서 반환하는 열 및 행의 결과가 자동으로 표시됩니다.

 일반 `as` SQL 열 선택 구문을 사용하여 테이블 패널 열의 이름을 제어할 수 있습니다.

## 시계열 쿼리


 예를 들어 그래프 패널에서 사용할 **형식**을 `Time series`로 설정한 경우 쿼리는 SQL datetime 또는 Unix 에포크를 나타내는 숫자 데이터 유형을 반환하는 `time`이라는 열을 반환해야 합니다. `time` 및 `metric`을 제외한 모든 열은 값 열로 처리됩니다. 값 열의 지표 이름으로 사용되는 `metric` 열을 반환할 수 있습니다. 다중 값 열과 `metric` 열을 반환하면 이 열이 시리즈 이름의 접두사로 사용됩니다.

 시계열 쿼리의 결과 세트는 시간별로 정렬해야 합니다.

 다음 코드 예제에서는 `metric` 열을 보여줍니다.

```
SELECT
  $__timeGroup("time_date_time",'5m'),
  min("value_double"),
  'min' as metric
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY time
ORDER BY time
```

 아래 코드 예제에서는 \$1\$1\$1timeGroup 매크로의 채우기 파라미터를 사용하여 대신 null 값을 0으로 변환하는 방법을 보여줍니다.

```
SELECT
  $__timeGroup("createdAt",'5m',0),
  sum(value) as value,
  measurement
FROM test_data
WHERE
  $__timeFilter("createdAt")
GROUP BY time, measurement
ORDER BY time
```

 다음 코드 예제에서는 여러 열을 보여줍니다.

```
SELECT
  $__timeGroup("time_date_time",'5m'),
  min("value_double") as "min_value",
  max("value_double") as "max_value"
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY time
ORDER BY time
```

## 템플릿 지정


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 [템플릿](templates-and-variables.md#templates) 섹션을 참조하세요.

### 쿼리 변수


 `Query` 유형의 템플릿 변수를 추가하는 경우 드롭다운 선택 상자로 표시되는 측정 이름, 키 이름 또는 키 값과 같은 항목을 반환할 수 있는 PostgreSQL 쿼리를 작성할 수 있습니다.

 예를 들어 템플릿 지정 변수 **쿼리 설정에서 이와 같은 쿼리를 지정하여 `hostname` 열의 모든 값을 포함하는 변수를 가질 수 있습니다.

```
SELECT hostname FROM host
```

 쿼리는 여러 열을 반환할 수 있으며 Grafana는 이 열에서 목록을 자동으로 생성합니다. 예를 들어 다음 쿼리는 `hostname` 및 `hostname2`의 값이 포함된 목록을 반환합니다.

```
SELECT host.hostname, other_host.hostname2 FROM host JOIN other_host ON host.city = other_host.city
```

 쿼리에서 `$__timeFilter(column)`와 같은 시간 범위 종속 매크로를 사용하려면 템플릿 변수의 새로 고침 모드를 *시간 범위 변경 시*로 설정해야 합니다.

```
SELECT event_name FROM event_log WHERE $__timeFilter(time_column)
```

 또 다른 옵션으로 키/값 변수를 생성할 수 있는 쿼리가 있습니다. 쿼리에서 `__text` 및 `__value`라는 두 개의 열을 반환해야 합니다. `__text` 열 값은 고유해야 합니다(고유하지 않은 경우 첫 번째 값이 사용됨). 드롭다운 목록의 옵션은 텍스트 및 값을 포함하며, 여기에서는 친숙한 이름(텍스트) 및 ID(값)를 지정할 수 있습니다. `hostname`을 텍스트로, `id`를 값으로 사용하는 쿼리 예제: 

```
SELECT hostname AS __text, id AS __value FROM host
```

 중첩 변수를 생성할 수도 있습니다. `region` 변수를 사용하면 호스트 변수에서 현재 선택한 리전의 호스트만 표시할 수 있습니다. 다음 코드 예제에서는 다음과 같은 쿼리를 보여줍니다(`region`이 다중 값 변수인 경우 다중 값과 일치하려는 경우 `=` 대신 `IN` 비교 연산자 사용).

```
SELECT hostname FROM host  WHERE region IN($region)
```

#### `__searchFilter`를 사용하여 쿼리 변수에서 결과 필터링


 쿼리 필드에서 `__searchFilter`를 사용하면 드롭다운 선택 상자에 입력한 내용을 기반으로 쿼리 결과를 필터링합니다. 사용자가 아무 것도 입력하지 않은 경우 `__searchFilter`의 기본값은 `%`입니다.

**참고**  
 Grafana에서는 이를 자동으로 수행하지 않으므로 `__searchFilter` 표현식을 따옴표로 묶는 것이 중요합니다.

 다음 예제에서는 사용자가 드롭다운 선택 상자에 텍스트를 입력하는 동안 `__searchFilter`를 쿼리 필드의 일부로 사용하여 `hostname` 검색을 활성화하는 방법을 보여줍니다.

```
SELECT hostname FROM my_host  WHERE hostname LIKE '$__searchFilter'
```

### 쿼리에서 변수 사용


 템플릿 변수 값은 템플릿 변수가 `multi-value`인 경우에만 따옴표로 묶습니다.

 변수가 다중 값 변수인 경우 여러 값과 일치시키는 `=`보다 `IN` 비교 연산자를 사용합니다.

 두 가지 구문이 있습니다.

 `$<varname>`: 템플릿 변수 이름이 `hostname`인 예제: 

```
SELECT
  atimestamp as time,
  aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp ASC
```

 `[[varname]]`: 템플릿 변수 이름이 `hostname`인 예제: 

```
SELECT
  atimestamp as time,
  aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp ASC
```

#### 다중 값 변수에 대한 따옴표 기능 끄기


 Amazon Managed Grafana에서는 다중 값 변수에 대해 따옴표로 묶고 쉼표로 구분된 문자열을 자동으로 생성합니다. 예를 들어, `server01` 및 `server02`를 선택하면 `'server01', 'server02'` 형식으로 지정됩니다. 이 기능을 끄려면 변수에 csv 형식 지정 옵션을 사용합니다.

 `${servers:csv}` 

 변수 형식 지정 옵션에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

## Annotations


 주석을 사용하여 그래프 위에 풍부한 이벤트 정보를 오버레이합니다. 대시보드 메뉴/주석 보기를 통해 주석 쿼리를 추가합니다. 자세한 내용은 [Annotations](dashboard-annotations.md) 단원을 참조하십시오.

 다음 코드 예제에서는 에포크 값이 있는 시간 열을 사용하는 쿼리를 보여줍니다.

```
SELECT
  epoch_time as time,
  metric1 as text,
  concat_ws(', ', metric1::text, metric2::text) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

 다음 코드 예제에서는 에포크 값을 포함하는 time 및 timeend 열을 사용하는 리전 쿼리를 보여줍니다.

**참고**  
 Grafana v6.6 이상에서만 사용할 수 있습니다.

```
SELECT
  epoch_time as time,
  epoch_time_end as timeend,
  metric1 as text,
  concat_ws(', ', metric1::text, metric2::text) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

 다음 코드 예제에서는 기본 SQL 날짜/시간 데이터 유형의 시간 열을 사용하는 쿼리를 보여줍니다.

```
SELECT
  native_date_time as time,
  metric1 as text,
  concat_ws(', ', metric1::text, metric2::text) as tags
FROM
  public.test_data
WHERE
  $__timeFilter(native_date_time)
```


|  이름  |  설명  | 
| --- | --- | 
|  time  |  날짜/시간 필드의 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  timeend  |  종료 날짜/시간 필드의 선택적 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다(Grafana v6.6 이상). | 
|  text  |  이벤트 설명 필드. | 
|  tags  |  이벤트 태그에 대해 쉼표로 구분된 문자열로 사용할 선택적 필드 이름. | 

## 알림


 시계열 쿼리는 알림 조건에서 작동해야 합니다. 테이블 형식의 쿼리는 알림 규칙 조건에서 아직 지원되지 않습니다.

# Tempo 데이터 소스에 연결
Tempo

 Tempo는 Grafana Labs의 대용량 최소 종속성 추적 스토리지 OSS 추적 솔루션입니다.

## 데이터 소스 추가


 Tempo 설정에 액세스하려면 **구성**(톱니) 아이콘을 선택하고 **데이터 소스**를 선택한 다음, **Tempo**를 선택하세요.


|  이름  |  설명  | 
| --- | --- | 
|  Name  |  패널, 쿼리 및 탐색에서 데이터 소스를 참조할 때 사용하는 이름. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  URL  |  Tempo 인스턴스의 URL(예: http://tempo). | 
|  Basic Auth  |  Tempo 데이터 소스에 대한 기본 인증을 활성화합니다. | 
|  User  |  기본 인증을 위한 사용자 이름. | 
|  Password  |  기본 인증을 위한 암호. | 

## 로그에 대한 추적


 추적에 대한 추적 기능 구성입니다. 현재 대상 데이터 소스는 Loki여야 합니다. 자세한 내용은 [추적 통합](explore.md#tracing-integration) 단원을 참조하십시오.
+ **데이터 소스** - 대상 데이터 소스.
+ **태그** - Loki 쿼리에 사용되는 태그. 기본값은 입니다.`'cluster', 'hostname', 'namespace', pod'`
+ **범위 시작 시간 전환** - 범위 시작 시간을 기준으로 Loki 쿼리의 시작 시간으로 전환합니다. 과거로 확장하려면 음수 값을 사용해야 합니다. 여기에서는 5s, 1m, 3h와 같은 시간 단위를 사용할 수 있습니다. 기본값은 0입니다.
+ **범위 종료 시간 전환** - 범위 종료 시간을 기준으로 Loki 쿼리의 종료 시간으로 전환합니다. 여기에서는 5s, 1m, 3h와 같은 시간 단위를 사용할 수 있습니다. 기본값은 0입니다.

## 추적 쿼리


 탐색을 통해 Tempo에서 추적을 쿼리하고 표시할 수 있습니다. 데이터 소스 구성 페이지에서 로그에 대한 추적 설정을 구성하면 추적을 검색할 수 있습니다. 시각화할 추적을 찾으려면 Loki 쿼리 편집기를 사용합니다. 검색 결과를 가져오려면 파생 필드가 구성되어 있어야 합니다. 이 필드는 이 데이터 소스를 가리킵니다.

특정 추적을 쿼리하려면 TraceID 쿼리 유형을 선택한 다음, ID를 추적 ID 필드에 넣습니다.

## 로그에서 추적 ID에 연결


 내부 링크를 구성하여 Loki 또는 Elastic의 로그에서 Tempo 추적에 연결할 수 있습니다. 자세한 내용은 [파생 필드](using-loki-in-AMG.md#loki-derived-fields) 단원을 참조하십시오.

# 테스트를 위한 TestData 데이터 소스 구성
TestData

Grafana는 모든 패널에 대해 시뮬레이션된 시계열 데이터를 생성하는 TestData 데이터 소스를 함께 제공합니다. 이를 사용하여 자체 가짜 및 무작위 시계열 데이터를 빌드하고 모든 패널에서 렌더링할 수 있으므로 대시보드 기능을 확인하고 데이터를 안전하고 쉽게 공유할 수 있습니다.

**데이터 소스 구성**

**TestData의 데이터 소스 구성에 액세스하는 방법**

1. **구성**(톱니) 아이콘을 선택하세요.

1. **데이터 소스**를 선택하세요.

1. **TestData**를 선택하세요.

데이터 소스에서는 모든 데이터 소스에 일반적인 가장 기본적인 옵션 이외의 설정을 제공하지 않습니다.


|  이름  |  설명  | 
| --- | --- | 
|  `Name`  |  패널, 쿼리 및 탐색의 데이터 소스 이름.  | 
|  `Default`  |  새 패널에 대해 이 데이터 소스를 미리 선택할지 여부.  | 

**모의 데이터 생성**

TestData 데이터 소스를 추가하면 Grafana 인스턴스의 사용자가 이를 모든 지표 패널에서 데이터 소스로 사용할 수 있으며 선택한 TestData 시나리오에 따라 사용할 수 있는 모의 데이터를 제공합니다.

**시나리오 선택**

쿼리 편집기를 제공하는 대신 TestData 데이터 소스를 사용하면 패널에 대한 시뮬레이션 데이터를 생성하는 **시나리오**를 선택할 수 있습니다.

각 시나리오에 **별칭**을 할당할 수 있으며, 많은 시나리오에는 선택할 때 고유한 옵션이 나타납니다.

**사용 가능한 시나리오:**
+ **Annotations**
+ **조건부 오류**
+ **CSV 콘텐츠**
+ **CSV 파일**
+ **CSV 지표 값**
+ **범위를 벗어난 데이터 포인트**
+ **지수 히트맵 버킷 데이터**
+ **Grafana API**
+ **Grafana Live**
+ **선형 히트맵 버킷 데이터**
+ **Apache Arrow 데이터 로드**
+ **로그**
+ **데이터 포인트 없음**
+ **노드 그래프**
+ **예측 가능한 CSV 웨이브**
+ **예측 가능한 펄스**
+ **Random Walk**
+ **Random Walk(오류 포함)**
+ **Random Walk 테이블**
+ **원시 프레임**
+ **시뮬레이션**
+ **느린 쿼리**
+ **스트리밍 클라이언트**
+ **테이블 정적**
+ **미국에서 생성된 데이터**

**사전 구성된 대시보드 가져오기**

TestData는 예제 대시보드도 제공합니다.

**예제 대시보드를 가져오는 방법**

1. 데이터 소스의 구성 페이지로 이동하세요.

1. **대시보드** 탭을 선택하세요.

1. **단순 스트리밍 예제** 대시보드에 대해 **가져오기**를 선택하세요.

**가져온 대시보드를 사용자 지정하는 방법:**

가져온 대시보드를 사용자 지정하려면 다른 이름으로 저장하는 것이 좋습니다. 그렇지 않으면 Grafana를 업그레이드할 때 사용자 지정 대시보드를 새 버전으로 덮어쓸 수 있습니다.

**테스트 데이터를 사용하여 문제 보고**

시계열 데이터의 사용 또는 렌더링과 관련된 문제를 GitHub의 GrafanaLabs에 보고하는 경우 이 데이터 소스를 사용하여 문제를 복제하는 것이 좋습니다. 이렇게 하면 개발자가 문제를 훨씬 더 쉽게 복제하고 해결할 수 있습니다.

# Zipkin 데이터 소스에 연결
Zipkin

 Zipkin은 오픈 소스의 분산 추적 시스템입니다. Amazon Managed Grafana의 탐색에서 추적을 쿼리할 수 있도록 Zipkin 데이터 소스를 추가합니다.

## 데이터 소스 추가


 Zipkin 설정에 액세스하려면 **구성**(톱니) 아이콘을 선택하고 **데이터 소스**를 선택한 다음, **Zipkin**을 선택하세요.


|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널, 쿼리 및 탐색에서 데이터 소스를 보는 방법입니다. | 
|  Default  |  기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다. | 
|  URL  |  Zipkin 인스턴스의 URL(예: http://localhost:9411). | 
|  Access  |  서버(기본값) = Grafana 백엔드/서버에서 URL에 액세스할 수 있어야 합니다. | 
|  Basic Auth  |  Zipkin 데이터 소스에 대한 기본 인증을 활성화합니다. | 
|  User  |  기본 인증을 위한 사용자 이름. | 
|  Password  |  기본 인증을 위한 암호. | 

## 추적 쿼리


 Zipkin에서의 추적 쿼리 및 표시는 탐색을 통해 사용할 수 있습니다.

 Zipkin 쿼리 편집기를 사용하면 추적 ID로 직접 쿼리하거나 추적 선택기에서 추적을 선택할 수 있습니다. 추적 ID로 쿼리하려면 텍스트 입력에 ID를 삽입합니다.

 추적 선택기를 사용하여 탐색에서 선택한 시간 범위에 로깅된 모든 추적에서 특정 추적을 선택하세요. 추적 선택기에는 세 가지 중첩 수준이 있습니다. 1. 원하는 서비스. 1. 특정 작업은 선택한 서비스의 일부입니다. 1. 선택한 작업이 발생한 특정 추적(루트 작업 이름 및 추적 기간으로 표시됨).

## 추적 UI의 데이터 매핑


 Zipkin 주석은 추적 보기에서 주석 키 아래에 표시된 주석 값을 포함하는 로그로 나타납니다.

## 로그에서 추적 ID에 연결


 내부 링크로 파생 필드를 구성하여 Loki의 로그에서 Zipkin 추적에 연결할 수 있습니다. 자세한 내용은 [파생 필드](using-loki-in-AMG.md#loki-derived-fields) 단원을 참조하십시오.

# Enterprise 데이터 소스에 연결
Enterprise 데이터 소스

다음 데이터 소스는 Amazon Managed Grafana Enterprise 플러그인으로 업그레이드된 워크스페이스에서 지원됩니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.

Enterprise 플러그인은 정기적으로 업데이트됩니다. 여기에는 기존 플러그인에 대한 업데이트 및 경우에 따라 새 데이터 소스가 모두 포함됩니다. 다음 설명서에는 사용 가능한 모든 데이터 소스가 포함되지 않을 수도 있습니다. Amazon Managed Grafana Enterprise 플러그인에서 지원하는 현재 Enterprise 플러그인 목록은 *Grafana 설명서*의 [Grafana Enterprise 플러그인](https://grafana.com/docs/plugins/)을 참조하세요.

버전 9 이상을 지원하는 워크스페이스의 경우 Enterprise 데이터 소스는 더 이상 기본적으로 설치되지 않습니다. 올바른 데이터 소스 플러그인을 설치해야 합니다. 여기에 나열되지 않은 항목을 포함하여 모든 Enterprise 데이터 소스에 플러그인을 설치할 수 있습니다. 이미 설치한 플러그인의 버전을 업데이트하도록 선택할 수도 있습니다. 플러그인 관리에 대한 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 섹션을 참고하세요.

**Topics**
+ [AppDynamics](appdynamics-AMG-datasource.md)
+ [Databricks](AMG-databricks-datasource.md)
+ [Datadog](AMG-datadog-datasource-plugin.md)
+ [Dynatrace](dynatrace-AMG-datasource.md)
+ [GitLab](gitlab-AMG-datasource.md)
+ [Honeycomb](honeycomb-AMG-datasource.md)
+ [Jira](jira-AMG-datasource.md)
+ [MongoDB](AMG-mongodb-datasource.md)
+ [New Relic](new-relic-data-source.md)
+ [Oracle Database](oracle-datasource-AMG.md)
+ [Salesforce](salesforce-AMG-datasource.md)
+ [SAP HANA](saphana-AMG-datasource.md)
+ [ServiceNow](grafana-enterprise-servicenow-datasource.md)
+ [Snowflake](snowflake-datasource-for-AMG.md)
+ [Splunk](splunk-datasource.md)
+ [Splunk Infrastructure Monitoring](AMG-datasource-splunkinfra.md)
+ [Wavefront](wavefront-datasource-for-AMG.md)

# AppDynamics 데이터 소스에 연결
AppDynamics

 Amazon Managed Grafana에 대한 AppDynamics 데이터 소스를 사용하면 지표 API를 사용하여 AppDynamics에서 지표를 쿼리하고 Grafana 대시보드에서 시각화할 수 있습니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 데이터 소스 구성에 대한 참고 사항


 서버(프록시) 액세스(CORS 및 사용자의 암호 조회 방지를 위함) 및 기본 인증을 사용합니다. 사용자 이름은 'user@account'(즉, your.name@customer1 또는 my\$1user@saas\$1account\$1name)여야 합니다.

 다음 단계를 사용하여 암호를 구성하세요.

1.  [https://accounts.appdynamics.com/subscriptions](https://accounts.appdynamics.com/subscriptions)로 이동합니다.

1.  구독 행의 **이름** 열에서 링크를 선택하세요.

1.  페이지 상단의 탭을 선택하여 **라이선스 세부 정보**로 이동하세요.

1.  액세스 키 필드에 **표시** 버튼이 있습니다. **표시** 버튼을 선택하여 액세스 키를 표시하세요.

1.  Grafana의 구성 페이지에 있는 기본 인증 세부 정보에서 암호 필드에 액세스 키를 복사합니다.

 다음 단계를 사용하여 Amazon Managed Grafana의 사용자 및 역할을 설정하세요.

1.  AppDynamics에서 설정, 관리로 이동하세요.

1.  **역할** 탭을 선택하고 '\$1' 버튼을 선택하여 새 역할(예: `grafana_readonly.`)을 생성하세요.

1.  역할 생성 섹션의 **계정** 탭에서 `View Business Flow` 권한을 추가하세요.

1.  **애플리케이션** 탭에서 **보기** 상자를 선택하여 Grafana가 애플리케이션 데이터를 볼 수 있도록 허용하세요.

1.  **데이터베이스** 탭에서 **보기** 상자를 선택하여 Grafana가 데이터베이스 데이터를 볼 수 있도록 허용하세요.

1.  **분석** 탭에서 **모든 애플리케이션에서 데이터를 볼 수 있음** 상자를 선택하여 Grafana에서 애플리케이션 분석 데이터를 볼 수 있도록 허용하세요.

1.  관리 페이지의 **사용자** 탭에서 새 사용자(예: `grafana`)를 생성하세요. 방금 생성한 역할(예: `grafana_readonly`)에 새 사용자(또는 사용자가 속한 그룹)를 할당하세요.

## 템플릿 지정


 현재 지원되는 템플릿 쿼리는 다음과 같습니다.

1.  `Applications`(전체 애플리케이션) 

1.  `AppName.BusinessTransactions`(애플리케이션 이름의 모든 BT) 

1.  `AppName.Tiers`(애플리케이션 이름의 모든 티어) 

1.  `AppName.Nodes`(애플리케이션 이름의 모든 노드) 

1.  `AppName.TierName.BusinessTransactions`(특정 티어의 모든 BT) 

1.  `AppName.TierName.Nodes`(특정 티어의 모든 노드) 

1.  `AppName.Path.<Any Metric Path>`(모든 지표 경로를 지정할 수 있음) 

## 범례 키


 범례 키의 기본값은 상당히 길 수 있지만 이 형식은 사용자 지정할 수 있습니다.

 `App on legend` 옵션을 선택하여 범례 키 앞에 애플리케이션 이름을 접두사로 추가할 수 있습니다. 예를 들어 `MyApp - Overall Application Performance|Average Response Time (ms)`입니다.

 범례 키를 볼 수 없는 단일 통계 또는 기타 패널에 대한 쿼리인 경우 메타데이터 표시 옵션을 선택하여 쿼리의 범례 키(별칭이라고도 함)가 무엇인지 확인하세요.

 범례 드롭다운 목록에는 `Full Path`, `Segments` 및 `Custom`의 세 가지 옵션이 있습니다 

### 범례 옵션 - 전체 경로


 범례 키는 전체 지표 경로(예: `Overall Application Performance|Average Response Time (ms)`)입니다.

### 범례 옵션 - 세그먼트


 지표 이름은 세그먼트로 구성됩니다. 표시할 세그먼트를 선택할 수 있습니다.

 예를 들어 지표 이름을 사용하는 경우 다음을 수행하세요.

 `Errors|mywebsite|Error|Errors per Minute` 

 세그먼트 필드에 다음 `2,4`를 입력하면 `mywebsite|Errors per minute`가 반환됩니다.

 인덱싱은 1로 시작하므로 `1`에서 `Errors`를 반환합니다.

### 범례 옵션 - 사용자 지정


 지표 메타데이터에서 혼합할 수 있도록 텍스트와 다음 별칭 패턴을 결합하여 사용자 지정 범례를 생성하세요.
+  `{{app}}`은 애플리케이션 이름을 반환합니다.
+  `{{1}}`은 지표 경로에서 세그먼트를 반환합니다.

   예를 들어 지표: `Overall Application Performance|Average Response Time (ms)`에는 두 개의 세그먼트가 있습니다. `{{1}}`은 첫 번째 세그먼트를 반환하고 `{{2}}`는 두 번째 세그먼트를 반환합니다.

 범례 키 패턴 및 생성된 범례 키의 예제: 
+  `custom legend key` => `custom legend key` 
+  `App: {{app}} MetricPart2: {{2}}` => `App: myApp MetricPart2: Average Response Time (ms)` 

# Databricks 데이터 소스에 연결
Databricks

Databricks 데이터 소스를 사용하면 Amazon Managed Grafana 내에서 Databricks 데이터를 쿼리 및 시각화할 수 있습니다. 여기에는 쿼리를 포맷하고 색상 코드를 지정하는 SQL 편집기가 포함되어 있습니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## Databricks 데이터 소스 추가


Grafana 콘솔에 Databricks 데이터 소스를 추가하려면 다음 단계를 수행합니다.

**Databricks 데이터 소스를 추가하는 방법**

1. 상단 헤더에서 Grafana 아이콘을 선택하여 사이드 메뉴를 여세요.

1. 사이드 메뉴의 **대시보드** 링크에서 **데이터 소스**를 선택하세요.
**참고**  
**데이터 소스** 링크가 표시되지 않으면 Grafana에 대한 `Admin` 역할이 없는 것입니다.

1. 상단 헤더에서 **\$1 데이터 소스 추가** 버튼을 선택하세요.

1. **유형** 드롭다운 목록에서 **Databricks**를 선택하세요.
**참고**  
Databricks 옵션이 표시되지 않지만 필요한 경우 Grafana Enterprise로 업그레이드해야 합니다.

1. 데이터를 연결하고 편집할 옵션을 선택하세요.

## Databricks 데이터 소스 사용 시 참고 사항


**시계열**

시계열 시각화는 쿼리에 `datetime` 필드를 추가할 때 선택할 수 있습니다. 이 필드는 시리즈의 타임스탬프로 사용됩니다. 필드에 특정 시간대가 포함되지 않은 경우 Grafana는 해당 시간이 UTC라고 가정합니다.

**여러 줄 시계열**

여러 줄 시계열 시각화를 생성하려면 쿼리에 다음 순서로 3개 이상의 필드가 포함되어야 합니다.

1. 별칭이 `time`인 `datetime` 필드.

1. `GROUP BY`에 대한 값.

1. 시각화할 하나 이상의 지표 값.

다음은 여러 줄 시계열 옵션을 반환하는 쿼리 예제입니다.

```
SELECT log_time AS time, machine_group, avg(disk_free) AS avg_disk_free
FROM mgbench.logs1
GROUP BY machine_group, log_time
ORDER BY log_time
```

# 데이터베이스 데이터 소스에 연결
Datadog

 Datadog 데이터 소스를 사용하면 Amazon Managed Grafana에서 Datadog 모니터링 서비스의 지표를 시각화할 수 있습니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 사용법


### 캐싱


 많은 쿼리를 만드는 대규모 대시보드의 경우 Datadog API에 의해 요금이 제한될 수 있습니다(Datadog API에서 허용하는 시간당 최대 API 직접 호출 수에 도달함). 캐싱 기능은 60초 동안 고유한 쿼리를 캐싱합니다. 이 간격은 구성 페이지에서 더 길거나 짧게 변경할 수 있습니다.

### 쿼리 편집기


 간단합니다. 집계 및 지표를 선택하세요. 결과를 필터링하려면 하나 이상의 태그를 선택하세요.

 Datadog 데이터 소스는 Datadog 쿼리 편집기에서 지원하는 모든 고급 함수를 지원합니다. 드롭다운 목록에서 선택하고 함수 이름을 선택하여 정렬합니다.

 **별칭 기준 필드 사용 가능성**: 
+  '별칭 기준' 필드에 별칭을 입력하세요.
+  범위 지정 변수를 사용합니다.
  +  `$__metric` = 지표 이름으로 대체됨 
  +  `$__display_name` = 지표 이름으로 대체됨 
  +  `$__expression` = 전체 지표 표현식으로 대체됨 
  +  `$__aggr` = 지표 집계 함수로 대체됨(예: avg, max, min, sum) 
  +  `$__scope` = 지표 범위로 대체됨(예: region, site, env, host) 
+  정규식을 사용하세요.
  +  `/you regexp here/flags` 형식의 '별칭 정규식' 필드에 정규식을 입력하세요.
  +  "별칭 기준" 필드가 비어 있으면 다음을 사용하여 정규식 결과가 조인됩니다. 지표 표현식 관련 예제 = `avg:system.load.5{*}`: "별칭 기준" 필드 입력: """별칭 정규식" 필드 입력: `avg:(.+)\.(\d)` 결과: `system.load, 5` 
  +  "별칭 기준" 필드의 `$<group_number>` 변수를 사용합니다. 지표 표현식 관련 예제 = `avg:system.load.5{*}`: "별칭 기준: 입력: `$1: $2 seconds` "별칭 정규식" 필드 입력: `avg:(.+)\.(\d)` 결과: `system.load: 5 seconds` 
  +  `$0`을 사용하여 전체 표현식을 가져오세요. 지표 표현식 관련 예제 = `datadog.dogstatsd.packet.count{*}`: "별칭 기준: 입력: `Expression: $0` "별칭 정규식" 필드 입력: `DOGstatsd\.(.*)\.(.*){\*}/i` 결과: `Expression: datadog.dogstatsd.packet.count{*}` 

   참고: 존재하지 않는 그룹 번호를 사용하면 오류가 발생합니다.

#### 지표 산술


 지표 산술을 사용하려면 *쿼리 유형*을 *산술*로 설정합니다. `#` 기호를 사용하여 원하는 지표에 연결합니다. 예를 들어 `#A * 2`는 `A` 쿼리의 결과를 두 배로 늘립니다. 두 지표 사이에서 산술은 동일한 방식으로 작동합니다. 계산에 사용하려는 결과를 쿼리에 추가한 다음, `#A / #B`와 같은 세 번째 쿼리에서 이러한 지표에 연결합니다.

### Annotations


 주석은 그래프 위에 오버레이된 이벤트입니다. 이벤트의 예로, 배포 또는 중단이 있습니다. 이 데이터 소스를 사용하면 Datadog에서 이벤트를 가져와 Amazon Managed Grafana의 그래프에 오버레이할 수 있습니다. 주석 이벤트는 소스, 태그 또는 우선순위별로 필터링할 수 있습니다.

### 템플릿 지정


 템플릿 변수의 값을 가져오는 몇 가지 옵션, 즉 지표와 태그가 있습니다. 사용 가능한 지표 목록을 가져오려면 *쿼리* 필드에 `*`를 지정합니다.

 모든 태그를 반환하려면 `tag` 또는 `scope` 값을 사용합니다.

 지정된 태그 그룹에 대한 태그를 반환하려면 다음 기본 범주 값 중 하나를 사용합니다.
+  `host` 
+  `device` 
+  `env` 
+  `region` 
+  `site` 
+  `status` 
+  `version` 

 사용자 지정 태그 그룹의 경우 태그 그룹 이름만 입력하면 됩니다. 예를 들어 사용자 지정 태그 그룹 이름이 `subscription_name`인 경우 *쿼리* 필드에 입력하세요.

 *정규식* 필드를 사용하여 결과를 필터링합니다. 태그를 사용할 때 다중 값 변수가 지원됩니다. 선택한 다중 태그 값은 쉼표로 구분된 태그 목록으로 변환됩니다.

#### 임시 필터


 Grafana에는 *임시 필터*라는 새로운 특수 유형의 템플릿 변수가 있습니다. 이 변수는 대시보드의 *모든* Datadog 쿼리에 적용됩니다. 이렇게 하면 빠른 필터처럼 사용할 수 있습니다. Datadog의 임시 변수는 태그에서 모든 키-값 페어(예: `region:east, region:west`)를 가져와 쿼리 태그로 사용합니다. 이 변수를 생성하려면 *임시 필터* 유형을 선택하고 Datadog 데이터 소스를 선택합니다. 이 변수에 대해 임의의 이름을 설정할 수 있습니다.

# Dynatrace 데이터 소스에 연결
Dynatrace

[https://www.dynatrace.com/](https://www.dynatrace.com)에 대한 데이터 소스. 이 데이터 소스를 사용하려면 Dynatrace 계정이 있어야 합니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

**알려진 제한 사항**

템플릿 변수는 여러 개를 선택할 수 없습니다. 한 개만 선택할 수 있습니다.

v2 지표 API만 지원됩니다.

## 특성


### 핵심 기능

+  템플릿 변수 
  +  지표 이름 
  +  단일 선택만(**다중 선택 없음**) 
  +  임시 필터 
+  Annotations 
  +  현재 지원되지 않음 
+  별칭 
  +  지표 이름 
  +  집계 
  +  표시 이름 
  +  Host 
  +  설명 
+  알림 
  +  전체 알림 지원 

### Dynatrace 특정 기능


 Dynatrace 지표 v2 API를 사용하여 기본 제공 지표와 사용자 지정 지표를 모두 지원합니다. 자세한 내용은 Dynatrace 설명서: [Metrics API v2](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/metric-v2/) 및 [Metric ingestion](https://www.dynatrace.com/support/help/how-to-use-dynatrace/metrics/metric-ingestion/)을 참조하세요.

지표에 따라 API에서 추가 변환 옵션을 지원할 수 있습니다.

## Dynatrace 권한


 Dynatrace에서 다음 권한이 필요합니다. - API V2(metrics.read) 권한을 사용하여 지표 읽기 - API V2(entities.read) 권한을 사용하여 엔터티 읽기 

## Dynatrace에서 API 키 가져오기


API 토큰을 설정하려면 [Dynatrace API - Tokens and authentication](https://www.dynatrace.com/support/help/dynatrace-api/basics/dynatrace-api-authentication/?api-token%3C-%3Epersonal-access-token=api-token)을 참조하세요.

API 토큰에 대한 `metrics.read` 및 `entities.read` 권한을 설정합니다.

### 구성


1.  논리적 Grafana 서버 UI에서 **설정/데이터 소스**를 선택하고 **데이터 소스 추가**를 선택하세요.

1.  **데이터 소스 추가** 페이지에서 **Dynatrace**를 필터링하고 Dynatrace 플러그인을 선택하세요.

1. Dynatrace 데이터 소스를 구성하려면 다음 파라미터가 필요합니다.
   +  `Name` - Dynatrace 데이터 소스에 적용할 이름(기본값: Dynatrace).
   +  `Dynatrace API Type` - 연결하려는 Dynatrace 인스턴스의 유형. `SaaS` 와 `Managed Cluster` 중에 하나입니다.
   +  `Dynatrace API Token` - 이전 단계에서 생성한 API 토큰입니다.

   다음 두 설정은 Dynatrace SaaS인지 아니면 관리형인지에 따라 달라집니다.
   + `yfc55578.live.dynatrace.com`의 SaaS 예제에서 **환경 ID**는 `yfc55578`입니다.
   + `yd8888.managed-sprint.dynalabs.io/e/abc99984-3af2-55tt-72kl-0672983gc45`의 관리형 예제에서 **환경 ID**는 `abc99984-3af2-55tt-72kl-0672983gc45`이고 **도메인**은 `yd8888.managed-sprint.dynalabs.io`입니다.

1.  모든 구성 값을 설정한 후 **저장 및 테스트**를 선택하여 구성을 검증하고 변경 사항을 저장하세요.

### 데이터 소스 쿼리


쿼리 편집기를 사용하여 Dynatrace 지표 및 문제를 쿼리합니다. 쿼리 유형은 `metric` 또는 `problem`일 수 있습니다.

**지표 쿼리 유형**
+ `Metric` - 확인할 지표를 선택합니다. Dynatrace에서 지표 목록을 다시 가져오려면 **새로 고침** 버튼을 선택하세요.
+ `Aggregations` - 특정 지표에 사용할 집계를 선택합니다. 집계 값을 선택하여 집계 유형을 변경하거나 **\$1**를 선택하여 다른 집계를 추가합니다.
+ `Transformations` - 쿼리 편집기에서는 변환을 선택할 수 있습니다. 그런 다음, 선택한 변환에 여러 파라미터를 입력하세요. 현재는 병합 변환만 지원됩니다. 병합 변환에 대한 자세한 내용은 [Merge transformation](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/metric-v2/metric-selector/#merge-transformation)을 참조하세요.
+ `Filters` - Dynatrace 데이터 소스는 각 지표에 적합한 필터를 동적으로 쿼리합니다. 필터를 추가하려면 Dynatrace 쿼리 편집기의 **필터** 레이블 옆에 있는 **\$1** 기호를 선택하고 필터링할 필드를 선택한 다음, 사용할 연산자를 선택하고 필터링할 값을 선택합니다. Dynatrace 데이터 소스를 사용하면 복잡한 논리적 비교를 생성하기 위해 함께 결합할 수 있는 필터 그룹을 생성할 수 있습니다. 대부분의 사용 사례에서 필터 그룹은 필요하지 않습니다. 태그와 함게 필터를 생성할 때 선택한 연결과 관계없이 Dynatrace는 항상 AND를 사용합니다. Dynatrace는 태그가 있는 OR 필터를 지원하지 않습니다.
+ `Alias` - Dynatrace 데이터 소스를 사용하는 동안 두 가지 유형의 별칭이 나타납니다. 첫 번째는 정적 별칭입니다. 이 유형의 별칭은 빌드하는 모든 쿼리에서 사용할 수 있으며 별칭의 이름은 소문자로 시작합니다. 두 번째 별칭은 동적 별칭으로, 쿼리에서 사용 중인 지표에 따라 변경되며 별칭의 이름은 대문자로 시작합니다. Dynatrace 플러그인은 `Metric Names`, `Aggregation`, `Display Name`, `Host`, `Description`과 같은 여러 별칭을 지원합니다.


|  이름  |  값  | 
| --- | --- | 
|  \$1name  |  builtin:apps.other.keyUserActions.reportedErrorCount.os  | 
|  \$1aggregation  |  auto,value  | 
|  \$1displayName  | 보고된 오류 수(키 사용자 작업, OS별) [mobile, custom] | 

**문제 쿼리 유형**
+ `Problem Query Type` - 문제 쿼리 유형을 선택합니다. 현재, 피드 문제 쿼리 유형만 지원됩니다. 피드 문제 쿼리 유형에 대한 자세한 내용은 [병합 변환](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/metric-v2/metric-selector/#merge-transformation)을 참조하세요.
+ `Status Filter` - 상태별로 결과 문제를 필터링합니다.
+ `Impact Filter` - 영향 수준별로 결과 문제를 필터링합니다.
+ `Severity Filter` - 심각도 수준별로 결과 문제를 필터링합니다.
+ `Expand Details` - 설정된 경우 응답에 관련 이벤트를 포함합니다.

#### 템플릿 변수 사용


 새 Dynatrace 쿼리 변수를 추가하려면 [새 템플릿 변수 추가](variables-types.md#add-a-query-variable)를 참조하세요. Dynatrace 데이터 소스를 다음과 같은 사용 가능한 쿼리에 대한 데이터 소스로 사용합니다.
+ `Query type` - 쿼리 유형을 선택합니다. 쿼리 유형은 일부 데이터를 일부 키 또는 설명자와 연결합니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/grafana/latest/userguide/dynatrace-AMG-datasource.html)
+ `Regex` - (선택 사항) 정규식을 사용해 쿼리에서 반환된 값을 필터링합니다.

**참고**  
`Multi-value` 및 `Include All option`은 현재 Dynatrace 데이터 소스에서 지원되지 않습니다.

변수를 생성한 후에는 **지표** 드롭다운 메뉴에서 찾을 수 있습니다.

##### Dynatrace에 대한 대시보드 가져오기


대시보드를 가져오려면 [대시보드 가져오기](dashboard-export-and-import.md#importing-a-dashboard) 섹션을 참조하세요. 가져온 대시보드는 **구성** > **데이터 소스** > Dynatrace 데이터 소스 선택 > **대시보드** 탭을 선택하여 확인할 수 있습니다(사전에 만든 사용 가능한 대시보드 표시).

# GitLab 데이터 소스에 연결
GitLab

GitLab 데이터 소스를 사용하면 상위 기여자, 일일 커밋 또는 일일 배포와 같은 세부 GitLab 통계를 추적할 수 있습니다. 프로젝트와 같은 템플릿 변수를 사용하여 대시보드에 대한 필터를 설정할 수도 있습니다. GitLab API의 데이터를 다른 소스의 데이터와 결합할 수 있습니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 알려진 제한 사항


알림 쿼리에서는 변환이 지원되지 않으며 변환이 GitLab API 원시 데이터에서 의미 있는 집계 지표를 얻는 유일한 방법이므로 이 플러그인에서는 아직 알림이 지원되지 않습니다.

## 데이터 소스 추가


1.  Amazon Managed Grafana 워크스페이스에서 Grafana 콘솔을 열고 로그인되었는지 확인합니다.

1.  사이드 메뉴의 **구성**(톱니 아이콘) 아래에서 **데이터 소스**를 선택하세요.

1.  **데이터 소스 추가**를 선택합니다.
**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.

1.  데이터 소스 목록에서 **GitLab**을 선택하세요.

1. 다음 정보를 입력합니다.
   + **이름**에서 이 GitLab 데이터 소스의 이름을 입력합니다.
   + **URL**에 GitLab 인스턴스의 루트 URL(예: **https://gitlab.com/api/v4**)을 입력하세요.
   + **액세스 토큰 **에 GitLab 개인 액세스 토큰을 입력하세요.

## GitLab 데이터 소스 쿼리


GitLab 쿼리 편집기에서 커밋, 문제 또는 릴리스와 같은 다양한 리소스 유형을 선택할 수 있습니다.

**프로젝트 필터링 및 보기**

1.  드롭다운 메뉴에서 **프로젝트**를 선택하세요.

1.  (선택 사항) 소유한 프로젝트를 기준으로 필터링하세요.

1.  드롭다운을 사용하여 **예** 또는 **아니요**를 선택하여 결과를 필터링하세요.
**참고**  
 모든 프로젝트 가져오기(**소유 = 아니요**)는 시간이 오래 걸릴 수 있습니다.

**커밋 필터링 및 보기**

1.  드롭다운 메뉴에서 **커밋**을 선택하세요.

1.  입력 필드를 사용하여 프로젝트 ID를 추가합니다.

1.  (선택 사항) 브랜치/태그를 기준으로 필터링하려면 입력 필드를 사용하여 브랜치/태그 참조를 추가하세요.

**문제 필터링 및 보기**

1.  드롭다운 메뉴에서 **문제**를 선택하세요.

1.  입력 필드를 사용하여 프로젝트 ID를 추가합니다.

1.  (선택 사항) 제목/설명을 기준으로 필터링하려면 입력 필드를 사용하여 **제목** 및 **설명**을 기반으로 문제를 검색하세요.

**릴리스 보기**

1.  드롭다운 메뉴에서 **배포**를 선택하세요.

1.  입력 필드를 사용하여 프로젝트 ID를 추가합니다.

1.  (선택 사항) 환경/상태를 기준으로 필터링하려면 입력 필드를 사용하세요. **상태** 속성은 `created`, `running`, `success`, `failed` 또는 `canceled` 값 중 하나일 수 있습니다.

**레이블 보기**

1.  드롭다운 메뉴에서 **레이블**을 선택하세요.

1.  입력 필드를 사용하여 프로젝트 ID를 추가합니다.

## 템플릿 및 변수


새 GitLab 쿼리 변수를 추가하려면 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. GitLab 데이터 소스를 데이터 소스로 사용하세요. **릴리스**, **프로젝트** 또는 **레이블**과 같은 리소스 유형을 선택하세요.

선택할 프로젝트, 레이블 등의 동적 목록을 가져오려면 쿼리 유형 변수를 생성하세요. 쿼리 유형 변수는 GitLab 쿼리 편집기를 사용하여 프로젝트, 레이블 등을 쿼리하고 반환합니다. 다음 예제에서는 쿼리를 파라미터화하기 위한 프로젝트 변수를 생성합니다.

**쿼리를 파라미터화하도록 프로젝트 변수 생성**

1.  **project**라는 **쿼리** 유형의 변수를 추가하세요.

1.  GitLab 데이터 소스를 선택하고 **대시보드 로드 시** 새로 고치세요.

1.  **프로젝트** 리소스 유형, **소유**의 경우 **예**, **표시 필드**의 경우 **이름**, **값 필드******의 경우 ID를 선택하세요.

1. **업데이트**를 선택하여 대시보드에 변수를 추가하세요.

1. 대시보드에 새 패널을 추가하고 **\$1project**를 프로젝트 ID로 사용하세요.

   이제 드롭다운에서 선택하면 해당 프로젝트에 속한 결과를 얻을 수 있습니다.

## Grafana의 변환을 사용하여 일반적인 질문에 답변


이제 기본 GitLab 쿼리를 수행하여 커밋, 문제 등을 찾을 수 있으므로 변환을 사용하여 데이터세트를 시각화, 집계, 그룹화 및 조인할 수 있으며, 다른 많은 유형의 변환을 사용하여 간단한 결과를 복잡한 질문에 대한 답변으로 변환할 수 있습니다. 다음은 몇 가지 일반적인 질문과 변환을 사용하여 질문에 답변하는 방법입니다.

**프로젝트에서 하루에 커밋/문제/배포 횟수는 몇 개인가요?**

1.  쿼리를 추가하세요. 리소스 유형에 대해 **커밋**을 선택하고 프로젝트 ID를 추가하세요.

1.  새 **그룹화 기준** 변환을 추가하세요. **그룹화 기준**에서 **created\$1at\$1date**를 선택한 다음 **(Count)=id**를 계산하세요.

1. **그래프** 시각화를 선택하세요.

**프로젝트의 문제를 마감하는 데 걸리는 평균 시간은 얼마인가요?**

1.  쿼리를 추가하세요. 리소스 유형에 대해 **문제**를 선택하고 프로젝트 ID를 추가하세요.

1.  새로운 **계산에서 필드 추가** 변환을 추가하세요. **모드 **의 경우 **바이너리 연산**을 선택하고, **연산**의 경우 **closed\$1at = created\$1at**을 선택하며, **별칭**의 경우 **resolution\$1time**을 선택하세요.

1.  새로운 **계산에서 필드 추가** 변환을 추가하세요. **모드 **의 경우 **바이너리 연산**을 선택하고, **연산**의 경우 **resolution\$1time / 86400000**을 선택하며, **별칭**의 경우 **resolution\$1time**을 선택하세요.

   **모든 필드 바꾸기**에서 **참**을 선택하세요.

1. **통계** 시각화를 선택하세요.
   + 표시 = 계산
   + 계산 = 평균
   + 필드 = **resolution\$1time**

# Honeycomb 데이터 소스에 연결
Honeycomb

Honeycomb 데이터 소스를 사용하면 Amazon Managed Grafana 내에서 Honeycomb 지표와 Honeycomb 추적에 대한 링크를 쿼리하고 시각화할 수 있습니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 알려진 제한 사항

+  이 데이터 소스는 임시 쿼리를 지원하지 않습니다.
+  API 제한 사항으로 인해 변수 편집기는 선택한 열에 대해 처음 1,000개의 고유 값만 반환할 수 있습니다.
+  API 제한 사항으로 인해 데이터 소스는 지난 7일간의 데이터만 쿼리할 수 있습니다.

## 데이터 소스 추가


1.  Amazon Managed Grafana 워크스페이스에서 Grafana 콘솔을 열고 로그인되었는지 확인합니다.

1.  사이드 메뉴의 **구성**(톱니 아이콘) 아래에서 **데이터 소스**를 선택하세요.

1.  **데이터 소스 추가**를 선택합니다.

1.  데이터 소스 목록에서 **Honeycomb**을 선택하세요.

**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.

**Honeycomb 설정**


|  이름  |  설명  | 
| --- | --- | 
|  Name  |  데이터 소스 이름. 패널, 쿼리 및 탐색에서 데이터 소스를 보는 방법입니다. | 
|  Honeycomb API key  |  Honeycomb에서 가져온 API 키. | 
|  URL  |  Honeycomb API의 URL. 예를 들어 https://api.honeycomb.io입니다. | 
|  Team  |  API 키와 연결된 Honeycomb 팀. | 

## Honeycomb 데이터 소스 쿼리


지표를 쿼리하려면 편집기 필드에 값을 입력하세요.
+  데이터세트에 선택합니다.
+  기본 쿼리는 선택한 데이터세트에 대한 `COUNT`입니다.
+  쿼리를 세분화하려면 **시각화**, **시각화**, **위치**, **제약 조건**, **그룹화 기준**, **정렬 기준** 또는 **제한**과 같은 나머지 필드의 값을 선택하세요.

## 템플릿 및 변수


새 Honeycomb 쿼리 변수를 추가하려면 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요.

데이터세트, 열 또는 열 값을 포함하는 변수를 생성할 수 있습니다.
+  데이터세트를 선택하지 않으면 변수에 데이터세트가 포함됩니다.
+  데이터세트만 선택하면 변수에 열 이름이 포함됩니다.
+  데이터세트와 열을 모두 선택하면 변수에 열 값이 포함됩니다. 편집기의 **위치** 필드를 사용하여 열 값을 추가로 제한할 수 있습니다.

## Honeycomb UI에서 쿼리 보기


Honeycomb UI에서 대시보드 패널을 통해 생성한 쿼리를 보려면 그래프에서 원하는 점을 선택하고 **Honeycomb에서 열기**를 선택하세요.

Honeycomb UI에서 쿼리 편집기를 통해 생성한 쿼리를 보려면 **Honeycomb에서 열기**를 선택하세요.

## Honeycomb에 대한 대시보드 가져오기


대시보드를 가져오려면 [대시보드 가져오기](dashboard-export-and-import.md#importing-a-dashboard) 섹션을 참조하세요.

가져온 대시보드를 찾으려면 **구성**, **데이터 소스**를 선택하세요.

사용 가능한 사전 생성된 대시보드를 보려면 Honeycomb 데이터 소스를 선택하고 **대시보드** 탭을 선택하세요.

# Jira 데이터 소스에 연결
Jira

Jira의 문제 데이터를 다른 소스의 애플리케이션 성능 데이터와 결합하여 개발 프로세스의 전체 그림을 확인하세요.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.
+ 문제 생성 또는 해결을 기반으로 주석을 생성하여 문제와 지표 간의 관계를 확인합니다.
+ 평균 해결 시간 및 문제 처리량과 같은 자세한 Jira 통계를 추적합니다.

Jira 데이터 소스를 사용하려면 Jira 프로젝트에 액세스할 수 있는 Atlassian 계정이 필요합니다.

## 알려진 제한 사항


Jira 추가 기능의 사용자 지정 필드 유형은 지원되지 않을 수 있습니다.

## 데이터 소스 추가


1.  Amazon Managed Grafana 워크스페이스에서 Grafana 콘솔을 열고 로그인되었는지 확인합니다.

1.  사이드 메뉴의 **구성**(톱니 아이콘) 아래에서 **데이터 소스**를 선택하세요.

1.  **데이터 소스 추가**를 선택합니다.
**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.

1.  데이터 소스 목록에서 **Jira**를 선택하세요.

1. 다음 정보를 입력합니다.
   + **이름 **에 이 Jira 데이터 소스의 이름을 입력하세요.
   + **URL**에 Atlassian 인스턴스의 루트 URL(예: **https://bletchleypark.atlassian.net**)을 입력하세요.
   + **사용자**에 사용자/서비스 계정의 이메일 주소를 입력하세요.
   + **API 토큰 **에서 사용자에 대해 생성된 API 토큰을 입력하세요.

## Jira 데이터 소스 쿼리


Jira 쿼리 편집기에서 필드 및 쿼리 문제를 선택할 수 있습니다.

Jira 데이터 소스는 Jira에 버그, 사용자 스토리, 지원 티켓 또는 Jira의 기타 태스크를 나타낼 수 있는 문제를 쿼리합니다.

**문제 필터링 및 보기**

1.  **필드**를 선택하고 드롭다운을 선택한 다음, 미리 입력을 사용하여 사용자 지정 필드를 포함해 Jira 인스턴스의 모든 필드 중에서 선택하세요. 시도할 일부 필드: 
   + **요약** - 문제의 이름.
   + **에픽 이름** - 문제가 속한 에픽.
   + **스토리 포인트 예측** - 팀이 문제에 대해 예측한 스토리 포인트 수.

1.  문제를 필터링하거나 정렬합니다. 이렇게 하려면 유효한 JQL 표현식을 입력하여 Atlassian 쿼리 언어 JQL을 사용해 **프로젝트**, **담당자** 또는 **스프린트**와 같은 필드를 기준으로 문제를 필터링하거나 정렬합니다.

여기에서 데이터를 테이블에 표시하거나 Grafana 변환을 사용하여 해당 문제 데이터를 조작하거나 계산을 실행하거나 데이터를 시계열 그래프로 변환할 수 있습니다. 자세한 내용은 [변환 적용](panel-transformations.md#apply-a-transformation) 단원을 참조하십시오.

## 시계열 쿼리


시계열 데이터를 표시하려면 숫자 필드와 함께 **날짜** 필드를 선택한 다음, 그래프 시각화로 전환하세요. 예: **스프린트 시작 날짜**, **스토리 포인트 예측**.

이전 예제는 그 자체로 유용하지 않습니다. 숫자 필드는 변환에서 계산될 수 있으며, 변환에서 계산되었을 가능성도 큽니다. **그룹화 기준** 변환을 사용하면 **스프린트 시작 날짜**를 기준으로 그룹화하고 **스토리 포인트 예측**을 요약하여 스프린트당 시간 경과에 따른 스토리 포인트 시각화가 가능합니다. 변환에 관한 자세한 내용은 [변환 적용](panel-transformations.md#apply-a-transformation) 섹션을 참조하세요.

## 템플릿 및 변수


새 Jira 쿼리 변수를 추가하려면 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. Jira 데이터 소스를 데이터 소스로 사용합니다.

대시보드에서 변수를 정의하고 JQL 표현식에서 참조할 수 있습니다. 예를 들어 프로젝트 상태 대시보드를 생성하고 프로젝트 중에서 선택하거나, 에픽 상태 대시보드를 선택하고 다른 에픽을 선택하거나, 태스크 상태 대시보드를 선택하고 다른 담당자를 선택할 수 있습니다.

선택할 프로젝트, 에픽, 담당자 등의 동적 목록을 가져오려면 쿼리 유형 변수를 생성하세요. 쿼리 유형 변수는 JQL을 사용하여 문제를 쿼리하고 프로젝트, 에픽, 담당자 또는 문제와 관련된 모든 항목을 반환합니다. 다음은 예제입니다.

**담당자 변수를 생성하여 담당자별로 문제 상태를 가져오세요.**

1.  **assignee**라는 **쿼리** 유형의 변수를 추가하세요.

1.  **필드: 담당자**를 선택하세요.

1.  (선택 사항) JQL 필터 **project = 'your project'**를 추가하세요.

1.  **실행**을 선택하여 담당자 목록을 확인하세요.

1. **업데이트**를 선택하여 대시보드에 변수를 추가하세요.

1. 대시보드에 새 패널을 추가하고 **assignee = \$1assignee**를 사용해 필터링하도록 JQL을 편집하세요.

   이제 드롭다운에서 선택하면 해당 사용자에게 할당된 문제만 표시됩니다.

다중 값 변수를 사용하면 여러 옵션을 선택할 수 있으며 IN 절의 일부로 사용할 수 있습니다. 예: **assignee IN (\$1assignee)**.

## Grafana의 변환을 사용하여 일반적인 질문에 답변


매크로는 대시보드 기간을 참조하는 변수이므로, 대시보드 기간의 범위 내에서만 문제를 필터링할 수 있습니다. 2개의 매크로가 있습니다.
+ **\$1\$1\$1timeFrom**
+ **\$1\$1\$1timeTo.**

다음 예제 JQL 쿼리는 대시보드 기간 내에 생성된 문제를 필터링합니다. `createdDate >= $__timeFrom AND createdDate <= $__timeTo` 

## 데이터 소스 최대한 활용


Grafana의 변환 및 기타 기본 제공 기능을 사용하면 Jira 데이터를 보고 의미를 파악하는 데 도움이 될 수 있습니다.

### 변환을 사용하여 JQL 보강


Grafana에는 선택할 수 있는 많은 변환이 있지만, 다음에서는 강력한 보강 기능을 제공하여 JQL에서 SQL의 기능/성능을 지원합니다.

**그룹화 기준** 이 변환은 표준 Jira JQL 구문인 Grouping에 포함되지 않는 주요 기능을 제공합니다. **그룹화 기준** 변환을 사용하면 스프린트 또는 기타 문제 필드를 기준으로 그룹화하고 그룹별로 집계하여 스프린트에서 완료된 실제 항목 및 스토리 포인트 예측과 속도 등의 지표를 얻을 수 있습니다.

**외부 조인** SQL 조인과 마찬가지로 공통 필드별로 2개 이상의 쿼리를 조인할 수 있습니다. 이렇게 하면 쿼리의 데이터세트를 결합하고 다른 변환을 사용하여 여러 쿼리/데이터세트의 값을 계산할 수 있습니다.

**계산에서 필드 추가** SQL 표현식과 마찬가지로 이 변환을 통해 다른 필드의 계산을 기반으로 데이터세트에 새 필드를 추가할 수 있습니다. 계산에 사용되는 필드는 단일 쿼리 또는 함께 조인한 쿼리일 수 있습니다. 계산을 함께 연결하고 계산된 필드에서 계산을 수행할 수도 있습니다.

### Grafana의 변환을 사용하여 일반적인 질문에 답변


변환을 사용하여 데이터세트를 시각화, 집계, 그룹화 및 조인할 수 있으며, 다른 많은 유형의 변환을 사용하여 간단한 결과를 복잡한 질문에 대한 답변으로 변환할 수 있습니다.

**스프린트당 벨로시티를 어떻게 표시하나요?**

1.  **스프린트 이름**, **스토리 포인트 예측** 필드를 선택하세요..

1.  다음 JQL 필터를 추가하세요. `project = "Your Project" AND type != epic AND status = done order by created ASC` 

1.  **그룹화 기준** 변환을 추가하세요.
   + 스프린트 이름 \$1 그룹화 기준
   + 스토리 포인트 예측 \$1 계산 \$1 합계

1. **막대 게이지** 시각화를 선택하세요.

**스프린트에서 완료된 항목과 예상 항목의 차이를 어떻게 표시하나요?**

1.  쿼리를 추가하세요. 먼저 필드: **스프린트 이름**, **스프린트 시작 날짜**, **스토리 포인트 추정**을 선택하세요.

   그리고 다음 JQL 필터를 추가하세요. `project = 'Your Project' AND type != epic` 

1.  두 번째 쿼리를 추가하세요. 먼저 필드: **스프린트 이름**, **스프린트 시작 날짜**, **스토리 포인트 추정**을 선택하세요.

   그리고 다음 JQL 필터를 추가하세요. `project = 'Your Project' AND type != epic AND status = done` 

1.  **그룹화 기준** 변환을 추가하세요.
   + 스프린트 이름 \$1 그룹화 기준
   + 스프린트 시작 날짜 \$1 그룹화 기준
   + 스토리 포인트 예측 \$1 계산 \$1 합계

1. **그래프** 시각화를 선택하세요.

**프로젝트에서 문제를 완료하는 데 걸리는 평균 시간은 얼마인가요?**

1.  쿼리를 추가하세요. 먼저 필드: **생성됨**, **상태 범주 변경됨**을 선택하세요.

   그리고 다음 JQL 필터를 추가하세요. `project = 'Your Project' AND type != epic AND status = done` 

1.  다음 변환을 추가하세요. **계산에서 필드 추가**
   + 모드 = 행 축소
   + 계산 = 차이

1.  다음 변환을 추가하세요. **계산에서 필드 추가**
   + 모드 = 바이너리 연산
   + 작업 = 차이/86000000
   + 별칭 = 일

1.  다음 변환을 추가하세요. **필드 구성**
   + 다른 필드 숨기기

1.  다음 변환을 추가하세요. **값을 기준으로 데이터 필터링**
   + 필터 유형 = 포함
   + 조건 = 임의 일치
     + 필드 = 일수 \$1 일치 = 초과 \$1 값 = 1

1.  다음 변환을 추가하세요. **축소**
   + 모드 = 시리즈에서 행으로
   + 계산 = 평균

1. **통계** 시각화를 선택하세요.

# MongoDB 데이터 소스에 연결
MongoDB

 MongoDB 데이터 소스를 사용하면 Amazon Managed Grafana에서 MongoDB의 데이터를 시각화할 수 있습니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 사용법


### 쿼리 편집기


 쿼리 편집기에서는 MongoDB 쉘과 동일한 구문을 지원하지만, 다음과 같은 몇 가지 제한 사항이 적용됩니다. \$1 명령/쿼리를 하나만 실행할 수 있습니다. \$1 읽기 명령만 지원됩니다(**찾기** 및 **집계**). \$1 *대부분*의 객체 생성자는 지원되지 않습니다(지원되는 **ISODate** 제외).

 편집기는 다음과 같은 방식으로 MongoDB 쉘 구문을 확장합니다.
+  **데이터베이스 선택** - 일반 'db' 대신 데이터베이스 이름을 제공할 수 있습니다.
**참고**  
'db'를 계속 사용할 수 있습니다. 연결 문자열의 기본 데이터베이스를 참조합니다.

  ```
  sample_mflix.movies.find()
  ```
+  **집계 정렬** - 일반적으로 정렬은 집계 파이프라인 내의 단계에서 이루어지지만 MongoDB Atlas 프리 티어는 정렬을 허용하지 않습니다. 프리 티어를 사용하는 사용자에게 허용하도록 구문을 확장했습니다.
**참고**  
MongoDB는 이 구문에서 정렬을 수행하지 않습니다. 정렬은 컬렉션에서 결과를 쿼리한 후 수행됩니다.

  ```
  sample_mflix.movies.aggregate({}).sort({"time": 1})
  ```
+  빈 편집기에서 **Ctrl \$1 Space**를 누르면 사용 가능한 모든 데이터베이스의 선택 항목이 표시됩니다.
+  데이터베이스 뒤에 점을 입력하면 해당 데이터베이스에 사용할 수 있는 모든 컬렉션의 선택 항목이 표시됩니다.
+  컬렉션 뒤에 점을 입력하면 사용 가능한 쿼리 메서드가 표시됩니다.
+  쿼리 메서드 뒤에 점을 입력하면 sort/limit라는 추가 함수가 표시됩니다.

#### 쿼리 실행


 **Cmd \$1 S**를 눌러 쿼리를 실행합니다.

### 시계열


 시계열 데이터를 시각화할 때 플러그인은 시간으로 사용할 필드를 알아야 합니다. 이름 별칭이 "time"인 필드를 투영하면 됩니다. 필드 데이터 유형은 날짜여야 합니다.

 날짜가 아닌 데이터 유형을 날짜로 강제 적용할 수 있습니다. 이렇게 하면 날짜 이외의 필드를 시계열 시간으로 사용할 수 있습니다. 다음 예제에서는 MongoDB \$1dateFromParts 파이프라인 연산자를 사용하여 int 필드 "year"를 "time"으로 투영된 날짜로 변환하는 방법을 보여줍니다.

```
sample_mflix.movies.aggregate([
{"$match": { "year": {"$gt" : 2000} }},
{"$group": { "_id": "$year", "count": { "$sum": 1 }}},
{"$project": { "_id": 0, "count": 1, "time": { "$dateFromParts": {"year": "$_id", "month": 2}}}}
]
).sort({"time": 1})
```

### 진단


 [진단 명령](https://docs.mongodb.com/manual/reference/command/nav-diagnostic/) 

 현재 지원되는 진단 명령은 다음과 같습니다. 'stats', 'serverStatus', 'replSetGetStatus', 'getLog', 'connPoolStats', 'connectionStatus', 'buildInfo', 'dbStats', 'hostInfo', 'lockInfo'

 예시: 

```
admin.connectionStatus()  // run the connectionStatus command
admin.connectionStatus({"authInfo.authenticatedUserRoles": 1})  // run and only return the "authInfo.authenticatedUserRoles" field
admin.connPoolStats({arg: "pool"})  // run the connPoolStats command and pass 1 argument
admin.serverStatus({args: {repl: 0, metrics:0}})  // run the serverStatus command and pass multiple args
```

### 매크로


 쿼리에서 대시보드 시간 범위를 참조할 수 있습니다.
+ ` $__timeFrom ` - 대시보드 시작 시간을 참조하는 매크로
+ ` $__timeTo ` - 대시보드 종료 시간을 참조하는 매크로

```
          $__timeTo -  ``` sample_mflix.movies.find({released: {$gt:
          "$__timeFrom"}}).sort({year: 1})
```

#### 템플릿 변수


MongoDB는 '복합 변수'라는 아이디어를 지원합니다. 이 아이디어를 통해 하나의 변수를 여러 변수로 사용하여 복잡한 다중 키 필터를 수행할 수 있습니다.

복합 변수를 생성하려면 `_var1_var2`와 같이 밑줄을 사용하여 변수를 구분하는 명명 규칙을 사용합니다(밑줄로 시작해야 함). 쿼리할 때 응답은 `val1-val2` 형식이어야 합니다.

**예제: 영화 이름과 연도에 대한 결과를 필터링하려고 합니다.**

1. `_movie_year` 유형의 쿼리에 대한 변수를 생성하세요.

1. 다음 예제와 같이 하나의 movie-year 속성을 포함하는 항목 배열을 반환하는 쿼리로 변수 쿼리를 설정합니다.

   ```
   // Example sample_mflix.movies.aggregate([
             {"$match": {year: {"$gt": 2011}}},
             {"$project": {_id: 0, movie_year: {"$concat":
             ["$title", " - ", {"$toString":"$year"}]}}}
             ])
   ```

   ```
    // [{"movie-year": "Ted - 2016"},
             {"movie-year": "The Terminator -
             1985"}]
   ```

1. 이제 쿼리에서 "\$1\$1variable" 구문을 사용하여 "Movie" 및 "Year"를 별도의 템플릿 변수로 참조할 수 있습니다.

##### 임시 필터 사용


모든 이름의 표준 '임시 필터' 유형 변수 외에도 두 번째 헬퍼 변수를 생성해야 합니다. `mongodb\$1adhoc\$1query` 이름 및 쿼리 편집기와 호환되는 값을 포함하는 '상수' 유형이어야 합니다. 쿼리 결과는 선택 가능한 필터를 채우는 데 사용됩니다. 이 변수는 더 이상 용도가 없으므로 보기에서 숨기도록 선택할 수 있습니다.

```
          sample_mflix.movies.aggregate([
          {"$group": { "_id": "$year"}},
          {"$project": { "year": "$_id","_id":
          0 }} ] )
```

# New Relic 데이터 소스에 연결
New Relic

 이 섹션에서는 Grafana에 대한 New Relic [APM](https://newrelic.com/products/application-monitoring) 및 [Insights](https://newrelic.com/products/insights)를 다룹니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 특성

+  템플릿 변수 
  +  지표 이름 
  +  지표 값 
+  Annotations 
+  별칭 
  +  지표 이름 
  +  지표 값 
+  임시 필터 
  +  현재 지원되지 않음 
+  알림 

## 구성


 데이터 소스를 추가하고 [관리자 API 키](https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys#admin), [개인 API 키](https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys#personal-api-key) 및 [계정 ID](https://docs.newrelic.com/docs/accounts/install-new-relic/account-setup/account-id)의 필드를 작성합니다.

## 사용법


### 서비스 유형

+  **지표** - New Relic의 [REST API](https://docs.newrelic.com/docs/apis/rest-api-v2)를 통해 New Relic APM을 쿼리합니다.
+  **인사이트** - [NRQL](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/nrql-resources/nrql-syntax-components-functions)을 통해 New Relic Insights를 쿼리합니다.

### 별칭


 일반 텍스트와 다음 변수를 결합하여 사용자 지정 출력을 생성할 수 있습니다.


|  변수  |  설명  |  예시 값  | 
| --- | --- | --- | 
|  \$1\$1\$1nr\$1metric  |  지표 이름  |  CPU/사용자 시간  | 
|  \$1\$1\$1nr\$1metric\$1value  |  지표 값  |  average\$1value  | 

예제:

```
    <para>
      Server: $__nr_server Metric: $__nr_metric
    </para>
    <programlisting>
```

### 템플릿 및 변수


1.  대시보드의 템플릿 변수를 생성합니다. 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 단원을 참조하십시오.

1.  '쿼리' 유형을 선택하세요.

1.  'New Relic' 데이터 소스를 선택하세요.

1.  상대 [REST API](https://docs.newrelic.com/docs/apis/rest-api-v2) 엔드포인트(파일 확장명 제외)를 사용하여 쿼리를 공식화합니다.

사용 가능한 애플리케이션 목록:

```
    <para>
      applications
    </para>
    <programlisting>
```

애플리케이션에 대해 사용 가능한 지표 목록:

```
    <para>
      applications/{application_id}/metrics
    </para>
    <programlisting>
```

### NRQL 매크로


 New Relic Query Language(NRQL) 쿼리를 생성할 때 쓰기 환경을 개선하기 위해 편집기는 사전 정의된 매크로를 지원합니다.
+  `$__timeFilter`(또는 `[[timeFilter]]`)는 대시보드의 시간 범위에 따라 `SINCE &lt;from&gt; UNTIL &lt;to&gt;`로 보간됩니다.

예제:

```
    <para>
      SELECT average(value) FROM $event_template_variable
      $__timeFilter TIMESERIES
    </para>
    <programlisting>
```

 매크로 및 템플릿 변수를 사용하는 방법에 대한 추가 힌트는 편집자의 도움말 섹션을 참조하세요.

### 알림 이벤트


 New Relic 데이터 소스를 선택하고 추가 필터를 설정합니다. 필터가 설정되지 않으면 모든 이벤트가 반환됩니다.

 *엔터티 ID*를 기준으로 이벤트를 필터링하려는 경우 ID 대신 엔터티 이름을 선택할 수 있으므로 템플릿 변수를 사용합니다. 예를 들어 특정 애플리케이션에 대한 이벤트를 필터링하려면 앱 목록을 `_$app_` 검색하고 이를 *엔터니 ID* 필터로 사용하는 변수를 생성합니다.

### 배포 이벤트


 *애플리케이션 ID*는 필수 필드입니다.

# Oracle 데이터베이스 데이터 소스에 연결
Oracle Database

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 데이터 소스 추가


 Grafana의 왼쪽 패널에서 **데이터 소스**를 선택하세요.

 데이터 소스 추가를 선택하세요.

 **oracle**을 입력하여 데이터 소스를 찾으세요.

 Oracle 서버 세부 정보를 입력하세요.

 포트 번호와 함께 호스트 이름 또는 IP 주소와 연결할 사용자 이름 및 암호를 입력하세요.

 tnsnames 옵션 토글을 사용하면 기본 인증과 함께 tnsnames.ora 구성 파일에 있는 유효한 항목을 사용할 수 있습니다.

 이전 예제와 비슷하지만 인증에 Kerberos를 사용합니다. kerberos를 사용하도록 OS 또는 Docker 컨테이너를 구성하는 방법에 대한 자세한 내용은 kerberos별 설정 안내서를 참조하세요.

 선택적으로 Oracle 서버에 연결하고 시간대 인식 매크로에서 사용할 시간대를 변경하세요. 기본 설정은 UTC입니다.

 데이터 소스를 저장하고 테스트하세요. '데이터 연결 정상'이라는 녹색 메시지가 표시됩니다.

## 사용법


### 매크로


 구문을 단순화하고 날짜 범위 필터와 같은 동적 부분을 허용하기 위해 쿼리에 매크로가 포함될 수 있습니다. 열 이름은 큰따옴표`"`()로 묶어야 합니다.


|  매크로 예제  |  설명  | 
| --- | --- | 
|  \$1\$1\$1\$1time(dateColumn )\$1 \$1 열 이름을 `time`으로 바꾸는 표현식으로 대체됩니다. 예: `dateColumn as time` \$1\$1\$1\$1timeEpoch(dateColumn)\$1  |  열 이름을 time로 바꾸고 값을 unix 타임스탬프(밀리초)로 변환하는 표현식으로 대체됩니다. | 
|  \$1\$1\$1\$1timeFilter(dateColumn)\$1 \$1 지정된 열 이름을 사용하여 시간 범위 필터로 대체됩니다. 예: `dateColumn BETWEEN TO\$1DATE('19700101','yyyymmdd') \$1 (1/24/60/60/1000) \$1 1500376552001 AND TO\$1DATE('19700101','yyyymmdd') \$1 (1/24/60/60/1000) \$1 1500376552002` \$1\$1\$1\$1timeFrom()\$1  |  DATE 데이터 유형으로 변환된 현재 활성 시간 선택의 시작으로 대체됩니다. 예를 들어 TO\$1DATE('19700101','yyyymmdd') \$1 (1/24/60/60/1000) \$1 1500376552001입니다. | 
|  \$1\$1\$1\$1timeTo ()\$1 \$1 `DATE` 데이터 유형으로 변환된 현재 활성 시간 선택의 끝으로 대체됩니다. \$1\$1\$1\$1timeGroup(dateColumn,"5m")\$1  |  GROUP BY 절에서 사용할 수 있는 표현식으로 대체됩니다. | 
|  \$1\$1\$1\$1timeGroup(dateColumn,"5m"[, fillvalue])\$1  |  GROUP BY 절에서 사용할 수 있는 표현식으로 대체됩니다. NULL 또는 부동 값의 fillValue를 제공하면 시간 범위의 빈 시리즈가 해당 값으로 자동으로 채워집니다. 예: timeGroupcreatedAt, ′1m′, 0.\$1\$1\$1timeGroup(dateColumn,"5m", 0)\$1. | 
|  \$1timeGroup(dateColumn, ‘5m’, NULL) \$1 \$1SameasabovebutNULLwillbeusedasvalueformissingpoints.\$1\$1\$1timeGroup(dateColumn,"5m", previous)\$1  |  위와 동일하지만 해당 시리즈의 이전 값이 채우기 값으로 사용됩니다. 아직 값이 보이지 않으면 NULL이 사용됩니다. | 
|  \$1\$1\$1\$1unixEpochFilter(dateColumn)\$1 \$1 지정된 열 이름을 사용하여 시간 범위 필터(unix 타임스탬프(밀리초)로 표시된 시간 형식)로 대체됩니다. 예: `dateColumn >= 1500376552001 AND dateColumn <= 1500376552002` \$1\$1\$1\$1unixEpochFrom()\$1  |  현재 활성 시간 선택의 시작(Unix 타임스탬프 형식)으로 대체됩니다. 예를 들어 1500376552001입니다. | 
|  \$1\$1\$1\$1unixEpochTo()\$1  |  현재 활성 시간 선택의 끝(Unix 타임스탬프 형식)으로 대체됩니다. 예를 들어 1500376552002입니다. | 

 플러그인은 괄호(`{}`)를 사용한 표기법도 지원합니다. 파라미터 내에서 쿼리가 필요한 경우 이 표기법을 사용합니다.

**참고**  
쿼리당 하나의 표기법을 사용합니다. 쿼리에 브레이스가 필요한 경우 쿼리의 모든 매크로에서 브레이스를 사용해야 합니다.

```
$__timeGroup{"dateColumn",'5m'}
$__timeGroup{SYS_DATE_UTC("SDATE"),'5m'}
$__timeGroup{FROM_TZ(CAST("SDATE" as timestamp), 'UTC'), '1h'}
```

 쿼리 편집기에는 패널 편집 모드에서 쿼리가 실행된 후 표시되는 **생성된 SQL** 링크가 있습니다. 링크를 선택하면 링크가 확장되고 실행된 원시 보간 SQL 문자열이 표시됩니다.

### 테이블 쿼리


 **형식** 쿼리 옵션이 **테이블**로 설정된 경우 기본적으로 모든 유형의 SQL 쿼리를 수행할 수 있습니다. 테이블 패널에는 쿼리에서 반환하는 열 및 행의 결과가 자동으로 표시됩니다. 일반 `as` SQL 열 선택 구문을 사용하여 테이블 패널 열의 이름을 제어할 수 있습니다.

### 시계열 쿼리


 예를 들어 그래프 패널에서 사용할 **형식**을 **시계열**로 설정한 경우 쿼리는 SQL datetime 또는 unix 에포크를 나타내는 숫자 데이터 유형(초 단위)을 반환하는 `time` 열을 반환해야 합니다. Grafana는 명시적 시간대가 없는 DATE 및 TIMESTAMP 열을 UTC로 해석합니다. `time` 및 `metric`을 제외한 모든 열은 값 열로 처리됩니다. 값 열의 지표 이름으로 사용되는 `metric` 열을 반환할 수 있습니다.

 다음 코드 예제는 `metric` 열을 보여줍니다.

```
SELECT
  $__timeGroup("time_date_time", '5m') AS time,
  MIN("value_double"),
  'MIN' as metric
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY $__timeGroup("time_date_time", '5m')
ORDER BY time
```

### 추가 쿼리 - oracle-fake-data-gen 사용


```
SELECT
  $__timeGroup("createdAt", '5m') AS time,
  MIN("value"),
  'MIN' as metric
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
GROUP BY $__timeGroup("createdAt", '5m')
ORDER BY time
```

 다음 코드 예제에서는 Fake Data 시계열을 보여줍니다.

```
SELECT
  "createdAt",
  "value"
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
ORDER BY "createdAt" ASC
```

```
SELECT
  "createdAt" as time,
  "value" as value
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
ORDER BY time ASC
```

 다음 예제에서는 유용한 테이블 결과를 보여줍니다.

```
select tc.table_name Table_name
,tc.column_id Column_id
,lower(tc.column_name) Column_name
,lower(tc.data_type) Data_type
,nvl(tc.data_precision,tc.data_length) Length
,lower(tc.data_scale) Data_scale
,tc.nullable nullable
FROM all_tab_columns tc
,all_tables t
WHERE tc.table_name = t.table_name
```

### 템플릿 지정


 지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하면 대시보드에 표시되는 데이터를 쉽게 변경할 수 있습니다.

#### 쿼리 변수


 `Query` 유형의 템플릿 변수를 추가하는 경우 드롭다운 선택 상자로 표시되는 측정 이름, 키 이름 또는 키 값과 같은 항목을 반환할 수 있는 Oracle 쿼리를 작성할 수 있습니다.

 예를 들어 템플릿 지정 변수 **쿼리 설정에서 이와 같은 쿼리를 지정하여 `hostname` 열의 모든 값을 포함하는 변수를 가질 수 있습니다.

```
SELECT "hostname" FROM host
```

 쿼리는 여러 열을 반환할 수 있으며 Grafana는 이 열에서 목록을 자동으로 생성합니다. 예를 들어 다음 쿼리는 `hostname` 및 `hostname2`의 값이 포함된 목록을 반환합니다.

```
SELECT "host.hostname", "other_host.hostname2" FROM host JOIN other_host ON host.city = other_host.city
```

 쿼리에서 `$__timeFilter("time_column")`와 같은 시간 범위 종속 매크로를 사용하려면 템플릿 변수의 새로 고침 모드를 *시간 범위 변경 시*로 설정해야 합니다.

```
SELECT "event_name" FROM event_log WHERE $__timeFilter("time_column")
```

 또 다른 옵션으로 키/값 변수를 생성할 수 있는 쿼리가 있습니다. 쿼리에서 `__text` 및 `__value`라는 두 개의 열을 반환해야 합니다. `__text` 열 값은 고유해야 합니다(고유하지 않은 경우 첫 번째 값이 사용됨). 드롭다운 목록의 옵션은 텍스트 및 값을 포함하며, 여기에서는 친숙한 이름(텍스트) 및 ID(값)를 지정할 수 있습니다. 다음 코드 예제에서는 `hostname`을 텍스트로, `id`를 값으로 사용하는 쿼리를 보여줍니다.

```
SELECT "hostname" AS __text, "id" AS __value FROM host
```

 중첩 변수를 생성할 수도 있습니다. 예를 들어 다른 `region` 변수가 있는 경우. 그런 다음, 호스트 변수가 이와 같은 쿼리를 사용하여 현재 선택한 리전의 호스트만 표시하도록 할 수 있습니다(`region`가 다중 값 변수인 경우 여러 값과 일치시키는 `=`보다 `IN` 비교 연산자 사용).

```
SELECT "hostname" FROM host WHERE region IN('$region')
```

#### 쿼리에서 변수 사용


 템플릿 변수 값은 템플릿 변수가 `multi-value`인 경우에만 따옴표로 묶습니다.

 변수가 다중 값 변수인 경우 여러 값과 일치시키는 `=`보다 `IN` 비교 연산자를 사용합니다.

 두 가지 구문이 있습니다.

 `$<varname>`: 템플릿 변수 이름이 `hostname`인 예제: 

```
SELECT
  "atimestamp" as time,
  "aint" as value
FROM table
WHERE $__timeFilter("atimestamp") AND "hostname" IN('$hostname')
ORDER BY "atimestamp" ASC
```

 `[[varname]]`: 템플릿 변수 이름이 `hostname`인 예제: 

```
SELECT
  "atimestamp" as time,
  "aint" as value
FROM table
WHERE $__timeFilter("atimestamp") AND "hostname" IN('[[hostname]]')
ORDER BY atimestamp ASC
```

# Salesforce 데이터 소스에 연결
Salesforce

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

Salesforce 데이터 소스를 사용하면 Amazon Managed Grafana 내에서 Salesforce의 데이터를 시각화할 수 있습니다.

이 데이터 소스를 사용하려면 [Salesforce](https://www.salesforce.com/) 계정 및 [Salesforce 연결 앱](https://help.salesforce.com/articleView?id=sf.connected_app_overview.htm&type=5)이 있어야 합니다.

## 알려진 제한 사항

+  임시 필터는 아직 지원되지 않습니다.
+  SOQL 쿼리와 SOQL을 통해 액세스할 수 있는 데이터만 현재 지원됩니다. SOSL 및 SAQL 쿼리 형식은 아직 지원되지 않습니다.

## 필수 설정


다음 설정이 필요합니다.

**참고**  
플러그인은 현재 OAuth 2.0 사용자 이름-암호 흐름을 사용합니다. 연결된 앱에서 필요한 콜백 URL은 사용되지 않습니다. 따라서 유효한 URL로 설정할 수 있습니다.


|  이름  |  설명  | 
| --- | --- | 
|  Enable OAuth settings  |  OAuth를 활성화하려면 이를 선택해야 합니다. | 
|  Callback URL  |  이 플러그인에서는 사용되지 않으므로 유효한 URL을 지정할 수 있습니다. | 
|  Selected OAuth Scopes (minimum requirements)  | 데이터(api)에 액세스하고 데이터를 관리합니다. | 
|  Require Secret for Refresh Token Flow  |  이를 활성화하거나 비활성화할 수 잇습니다. | 

## 데이터 소스 추가


1.  Amazon Managed Grafana 워크스페이스에서 Grafana 콘솔을 열고 로그인되었는지 확인합니다.

1.  사이드 메뉴의 **구성**(톱니 아이콘) 아래에서 **데이터 소스**를 선택하세요.

1.  **데이터 소스 추가**를 선택합니다.
**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.

1.  데이터 소스 목록에서 **Salesforce**를 선택하세요.

1. 다음 정보를 입력합니다.
   + **사용자 이름**에 Salesforce를 연결하고 쿼리하는 데 사용할 Salesforce 계정의 사용자 이름을 입력하세요.
   + **암호**에 해당 사용자 암호를 입력합니다.
   + **보안 토큰 **에 해당 사용자의 보안 토큰을 입력합니다.
   + **소비자 키**에 소비자 키를 입력하여 Salesforce에 연결하세요. Salesforce 연결된 앱에서 이 정보를 얻을 수 있습니다.
   + **소비자 보안 암호**에 Salesforce에 연결하는 데 사용할 소비자 보안 암호를 입력하세요. Salesforce 연결된 앱에서 이 정보를 얻을 수 있습니다.
   + **샌드박스 사용**에서 Salesforce 샌드박스를 사용하려면 이 옵션을 선택하세요.

## Salesforce 데이터 소스 쿼리


쿼리 편집기는 쿼리 빌더 및 SOQL 편집기 모드를 지원합니다. SOQL은 [ Salesforce Object Query Language](https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql.htm)의 약어입니다.

### 쿼리 빌더(SOQL 빌더)


쿼리 빌더는 SOQL 쿼리를 빌드하기 위한 사용자 친화적 인터페이스입니다. SOQL 쿼리 작성에 익숙하지 않은 경우 이 모드를 사용하여 SOQL을 빌드해 Salesforce 객체를 쿼리할 수 있습니다. 쿼리 빌더의 **FROM** 필드는 Salesforce에 있는 하나 이상의 엔터티를 나타냅니다. 쿼리 빌더의 다른 작업을 수행하기 전에 **FROM** 필드를 선택해야 합니다. **FROM** 필드를 선택한 후 빌더 모드를 선택해야 합니다. SOQL 빌더는 현재 다음 모드를 지원합니다.
+ `List` - 선택한 테이블/Salesforce의 필드를 포함하는 항목을 나열합니다. 이 모드를 사용하여 '이 회계 분기에 생성된 기회 목록과 함께 해당 이름, 값 및 단계 표시'와 같은 결과를 확인합니다.
+ `Aggregate` - 엔터티의 항목을 집계합니다. 이 모드를 사용하여 '지난 달에 생성된 기회 계산' 또는 '스테이지 이름별로 그룹화된 기회의 총 가치'와 같은 결과를 확인합니다.
+ `Trend` - 시간 경과에 따른 집계된 결과를 표시합니다. 이 모드를 사용하여 'CreatedDate별 기회 수 계산' 또는 '기회의 마감 날짜별로 그룹화된 총 가치 합계'와 같은 결과를 확인합니다.

쿼리 편집기에서 `Entity/FROM` 및 **모드**를 선택한 후 다음 옵션을 사용하여 쿼리를 빌드합니다.


|  **필드**  |  **적용 대상**  |  **설명**  | 
| --- | --- | --- | 
|  SELECT |  ALL  |  보려는 필드 목록을 선택하세요. 집계 또는 추세 보기에서 값을 집계할 방법도 선택합니다. | 
|  WHERE |  ALL  |  (선택 사항) 필터 조건을 지정합니다. 결과는 선택한 조건에 따라 필터링됩니다. | 
|  ORDER BY |  LIST, AGGREGATE  |  (선택 사항) 결과에 사용할 필드 이름과 정렬 순서를 선택합니다. | 
|  LIMIT |  LIST, AGGREGATE  |  (선택 사항) 반환된 결과 수를 제한합니다. 기본값은 100입니다. | 
|  GROUP BY |  AGGREGATE  |  (선택 사항) 집계된 값을 특정 필드로 분할하려면 필드를 선택합니다. | 
|  TIME FIELD |  TREND  |  결과를 그룹화할 날짜 필드를 지정합니다. 결과는 Grafana의 시간 선택기 범위에 따라 필터링됩니다. | 

쿼리 편집기에서 이전 필드를 구성하면 쿼리 편집기 아래에 생성된 SOQL의 미리 보기도 표시됩니다. 쿼리 빌더의 제한 사항으로 인해 차단된 경우 생성된 SOQL 쿼리를 사용자 지정할 수 있는 SOQL 편집기로 안전하게 전환할 수 있습니다.

### SOQL 편집기


원시 SOQL 편집기에서는 원시 SOQL 쿼리를 통해 Salesforce 객체를 쿼리하는 옵션을 제공합니다. SOQL 편집기에서는 테이블 및 해당 필드당 사용 가능한 엔터티와 같은 자동 완성 제안을 제공합니다. SELECT 또는 WHERE 다음에 Ctrl\$1Space를 사용하여 테이블당 사용 가능한 엔터티를 확인합니다. 엔터티 이름 뒤에 점을 입력하면 사용 가능한 필드를 볼 수 있습니다.

**단축키**

CTRL \$1 SPACE를 사용하여 사용 가능한 컨텍스트 옵션을 보여주는 코드 완료를 표시합니다.

CMD \$1 S는 쿼리를 실행합니다.

**시계열로 쿼리**

날짜 필드를 time으로, 지표 필드를 metric으로 각각 별칭을 지정하여 시계열 쿼리를 수행한 다음, 지표 및 날짜별로 그룹화합니다. 다음은 예제입니다.

```
SELECT sum(Amount) amount, CloseDate time, Type metric from Opportunity
group by Type, CloseDate
```

**매크로**

대시보드 시간 범위별로 필터링하기 위해 SOQL 쿼리에서 매크로를 사용할 수 있습니다.
+ `$__timeFrom` - `time` 데이터 유형으로 변환된 현재 활성 시간 선택의 시작으로 대체됩니다.
+ `$__timeTo` - `time` 데이터 유형으로 변환된 현재 활성 시간 선택의 끝으로 대체됩니다.
+ `$__quarterStart` - 회계 분기의 시작(SalesForce 회계 연도 설정에서 파생됨).
+ `$__quarterEnd` - 회계 분기의 끝(SalesForce 회계 연도 설정에서 파생됨).

```
SELECT UserId, LoginTime from LoginHistory where LoginTime > $__timeFrom
```

## 템플릿 및 변수


새 Salesforce 쿼리 변수를 추가하려면 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. Salesforce 데이터 소스를 데이터 소스로 사용합니다. 여기에서 모든 SOQL 쿼리를 사용할 수 있습니다.

사용자 ID 및 사용자 이름과 같은 이름/값 페어를 사용하려면 SOQL 쿼리에서 두 필드를 반환합니다. 첫 번째 필드가 ID로 사용됩니다. 쿼리 편집기 SOQL에서 키(ID 등)를 기준으로 필터링하려는 경우 이 작업을 수행합니다.

변수 구문을 사용하여 SOQL 쿼리에서 변수를 사용합니다. 자세한 내용은 [변수 구문](templates-and-variables.md#variable-syntax) 단원을 참조하십시오.

# SAP HANA 데이터 소스에 연결
SAP HANA

[SAP HANA](https://www.sap.com/products/technology-platform/hana.html)는 데이터 기반 실시간 결정 및 작업을 가속화하는 고성능 인 메모리 데이터베이스입니다. 이는 SAP에서 개발하고 판매합니다. SAP HANA 데이터 소스 플러그인을 사용하면 SAP HANA 인스턴스를 Grafana에 연결할 수 있습니다.

SAP HANA Grafana Enterprise 플러그인을 사용하면 Grafana의 다른 모든 데이터 소스와 함께 SAP HANA 데이터를 시각화하고 컨텍스트의 로그 및 지표 데이터를 시각화할 수 있습니다. 이 플러그인은 기본 제공 쿼리 편집기를 포함하고, 주석을 지원합니다. 이를 통해 알림 임계치를 설정하고, 액세스를 제어하며, 권한을 설정하는 등의 작업이 가능합니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 특성

+ **쿼리 편집기** - 플러그인에는 시계열 또는 테이블 데이터를 시각화하고 기본 Grafana 매크로를 자동으로 완료할 수 있는 구문 강조 표시 기능이 있는 기본 제공 SQL 쿼리 편집기가 함께 제공됩니다.
+ **데이터 소스 권한** - Grafana에서 SAP HANA 데이터를 보거나 쿼리할 수 있는 사용자를 제어합니다.
+ **주석** - 모든 Grafana 그래프에서 SAP HANA 이벤트 또는 데이터를 오버레이하여 이벤트를 다른 그래프 데이터와 연결합니다.
+ **알림** - SAP HANA에서 알림 기반 지표 저장소를 설정합니다.
+ **쿼리용 변수** - SAP HANA 데이터를 기반으로 하는 템플릿 변수를 Grafana에서 생성하고 SAP HANA 쿼리에 변수를 포함하여 대시보드를 대화형으로 만듭니다.

## 데이터 소스 추가


1.  Amazon Managed Grafana 워크스페이스에서 Grafana 콘솔을 열고 로그인되었는지 확인합니다.

1.  사이드 메뉴의 **구성**(톱니 아이콘) 아래에서 **데이터 소스**를 선택하세요.

1.  **데이터 소스 추가**를 선택합니다.
**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.

1.  데이터 소스 목록에서 **SAP HANA**를 선택하세요.

1. 구성 편집기에 다음 정보를 입력하세요.
   + **서버 주소**에 SAP HANA 인스턴스의 주소를 제공하세요. 예: `xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx.hana.trial-us10.hanacloud.ondemand.com`.
   + **서버 포트**에서 SAP HANA 인스턴스의 포트를 제공하세요.
   + **사용자 이름**에 SAP HANA 인스턴스에 연결하는 데 사용할 사용자 이름을 입력하세요.
   + **암호**에 마스터 사용자 암호를 입력하세요.
   + (선택 사항) TLS 확인을 건너뛰려면 **TLS 확인 건너뛰기**를 활성화하세요.
   + (선택 사항) 클라이언트 인증서 및 키를 제공해야 하는 경우 **TLS 클라이언트 인증**을 활성화하세요.
   + (선택 사항) 자체 서명된 TLS 인증서 확인을 활성화하려면 **CA 인증서 사용**을 활성화하세요.
   + (선택 사항) **기본 스키마**에 사용할 기본 스키마를 입력하세요. 이를 생략하는 경우 모든 쿼리에서 스키마를 지정해야 합니다.

**권한 및 액세스**

Grafana를 SAP HANA에 연결하려면 전용 자격 증명을 사용하세요. 사용자에게 필요한 권한만 제공하세요. 먼저 사용자 이름과 암호를 사용하여 제한된 사용자를 생성하세요. 다음 쿼리는 제한된 사용자를 생성하는 예제입니다. 또한 이 쿼리는 강제 암호 변경을 비활성화합니다.

```
CREATE RESTRICTED USER <USER> PASSWORD <PASSWORD> NO FORCE_FIRST_PASSWORD_CHANGE;
```

다음으로 사용자가 Grafana와 같은 클라이언트를 통해 시스템을 다음과 함께 연결할 수 있도록 허용하세요.

```
ALTER USER <USER> ENABLE CLIENT CONNECT;
```

마지막으로 사용자에게 필요한 보기, 테이블 및 스키마에 대한 액세스 권한을 부여하세요.

```
ALTER USER <USER> GRANT ROLE PUBLIC;
GRANT SELECT ON SCHEMA <SCHEMA> TO <USER>;
```

**사용자 수준 권한**

데이터 소스 권한을 활성화하기 위해 데이터 소스 구성 페이지의 권한 탭을 클릭하여 SAP HANA에 대한 액세스를 제한합니다. 권한 페이지에서 관리자는 권한을 활성화하고 특정 사용자 및 팀으로 쿼리 권한을 제한할 수 있습니다.

## 쿼리 편집기


SAP HANA Grafana 플러그인에는 모든 HANA 쿼리를 입력할 수 있는 SQL 쿼리 편집기가 함께 제공됩니다. 쿼리가 시간 데이터를 반환하는 경우 그래프 패널에서 데이터를 시각화하기 위해 시계열 형식을 지정할 수 있습니다. 쿼리 편집기는 SQL 쿼리의 지원되는 Grafana 매크로 및 구문 강조 표시에 대한 자동 완성을 제공합니다.

## Annotations


SAP HANA 쿼리를 Grafana 주석의 소스로 사용할 수 있습니다. 주석 쿼리에서는 하나 이상의 시간 열과 하나의 텍스트 열을 반환해야 합니다. 주석에 대한 자세한 내용은 [Annotations](dashboard-annotations.md) 섹션을 참조하세요.

**SAP HANA에서 주석을 생성하는 방법**

1.  **대시보드 설정** 톱니 아이콘을 선택하세요.

1.  왼쪽 메뉴에서 **주석**, **새로 만들기**를 선택하세요.

1.  **데이터 소스** 드롭다운 메뉴에서 SAP HANA 데이터 소스 인스턴스를 선택하세요.

1.  **쿼리** 필드에 하나 이상의 시간 필드와 하나의 텍스트 필드를 반환하는 SAP HANA 쿼리를 입력하세요.

1.  **형식 지정** 드롭다운 메뉴에서 **시계열**을 선택하세요.

1.  각 주석에 대해 **시작** 필드를 구성하세요.

## 템플릿 및 변수


새 SAP HANA 쿼리 변수를 추가하려면 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. SAP HANA 데이터 소스를 데이터 소스로 사용하세요.

다음 쿼리 예제에서는 `users` 테이블의 개별 `username` 목록을 반환합니다.

```
select distinct("username") from "users"
```

**참고**  
변수 쿼리에서 하나의 열만 선택해야 합니다. 쿼리가 두 개의 열을 반환하면 첫 번째 열이 표시 값으로 사용되고 두 번째 열이 변수의 실제 값으로 사용됩니다. 쿼리가 둘 이상의 열을 반환하면 거부됩니다.

### 템플릿 및 변수


쿼리에서 Grafana 변수를 사용할 수 있습니다. 다음 예제에서는 쿼리에서 단일/다중 변수를 사용하는 방법을 보여줍니다.

```
-- For example, following query
select * from "users" where "city" = ${city}
-- will be translated into
select * from "users" where "city" = 'london'
--- where you can see ${city} variable translated into actual value in the variable
```

텍스트와 마찬가지로 변수는 숫자 필드에서도 작동합니다. 아래 예제에서 `${age}`는 숫자를 수락하고 테이블의 숫자 필드와 비교하는 텍스트 상자 변수입니다.

```
select * from "users" where "age" > ${age}
--- wil be translated into
select * from "users" where "age" > '36'
```

변수가 여러 값을 반환하는 경우 아래와 같이 SAP HANA 쿼리의 `in` 조건에서 사용할 수 있습니다. SAP HANA에서 `where in` 조건을 유효하게 만들려면 변수를 괄호를 묶습니다.

```
select * from "users" where "city" in (${cities})
--- will be translated into
select * from "users" where "city" in ('london','perth','delhi')
--- where you can see ${cities} turned into a list of grafana variables selected.
--- You can also write the same query using shorthand notation as shown below
select * from "users" where "city" in ($cities)
```

### 매크로

+ `$__timeFilter(<time_column>)` - 원시 쿼리에 사용할 때 Grafana의 시간 범위를 지정된 열에 적용합니다. 날짜/타임스탬프/long 시간 열에 적용됩니다.
+ `$__timeFilter(<time_column>, <format>)` - 위와 동일합니다. 하지만 데이터베이스에 저장된 time\$1column 형식을 지정하는 기능을 제공합니다.
+ `$__timeFilter(<time_column>, "epoch", <format>)` - 위와 동일하지만 시간 열이 에포크 형식일 때 사용할 수 있습니다. 형식은 's', 'ms' 및 'ns' 중 하나일 수 있습니다.
+ `$__fromTimeFilter(<time_column>)` - 위와 동일하지만 시간 열이 에포크 형식일 때 사용할 수 있습니다. 형식은 's', 'ms' 및 'ns' 중 하나일 수 있습니다.
+ `$__fromTimeFilter(<time_column>, <comparison_predicate>)` - 위와 동일하지만 comparison\$1predicate를 지정할 수 있습니다.
+ `$__fromTimeFilter(<time_column>, <format>)` - 위와 동일하지만 시간 열의 형식을 지정할 수 있습니다.
+ `$__fromTimeFilter(<time_column>, <format>, <comparison_predicate>)` - 위와 동일하지만 comparison\$1predicate를 지정할 수 있습니다.
+ `$__toTimeFilter(<time_column>)` - Grafana의 시간 필드를 기준으로 시간 조건을 반환합니다.
+ `$__toTimeFilter(<time_column>, <comparison_predicate>)` - 위와 동일하지만 comparison\$1predicate를 지정할 수 있습니다.
+ `$__toTimeFilter(<time_column>, <format>)` - 위와 동일하지만 시간 열의 형식을 지정할 수 있습니다.
+ `$__toTimeFilter(<time_column>, <comparison_predicate>)` - 위와 동일하지만 comparison\$1predicate를 지정할 수 있습니다.
+ `$__timeGroup(<time_column>, <interval>)` - 시간 열을 간격 그룹으로 확장합니다. 날짜/타임스탬프/long 시간 열에 적용됩니다.

**\$1\$1\$1timeFilter(<time\$1column>) 매크로**

다음 예제에서는 `$__timeFilter(<time_column>)` 매크로를 설명합니다.

```
- In the following example, the query
select ts, temperature from weather where $__timeFilter(ts)
--- will be translated into
select ts, temperature from weather where ts > '2021-02-24T12:52:48Z' AND ts < '2021-03-24T12:52:48Z'
--- where you can see the grafana dashboard's time range is applied to the column ts in the query.
```

**\$1\$1\$1timeFilter(<time\$1column>, <format>) 매크로**

경우에 따라 데이터베이스의 시간 열은 사용자 지정 형식으로 저장됩니다. 다음 예제에서는 Grafana의 시간 선택기를 기반으로 사용자 지정 타임스탬프를 필터링하는 데 도움이 되는 `$__timeFilter(<time_column>, <format>)` 매크로를 설명합니다.

```
SELECT TO_TIMESTAMP("TS",'YYYYMMDDHH24MISS') AS METRIC_TIME , "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TS","YYYYMMDDHH24MISS") -- TS is in 20210421162012 format
SELECT TO_TIMESTAMP("TS",'YYYY-MON-DD') AS METRIC_TIME , "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TS","YYYY-MON-DD") -- TS is in 2021-JAN-15 format
```

매크로에서 형식은 타임스탬프 열과 일치하는 유효한 HANA 형식 중 하나일 수 있습니다. 예를 들어 `YYYYMMDDHH24MISS`는 데이터가 `20210421162012` 형식으로 저장될 때 유효한 형식입니다.

**\$1\$1\$1timeFilter(<time\$1column>, "epoch" <format>) 매크로**

경우에 따라 타임스탬프가 DB에서 에포크 타임스탬프로 저장되기도 합니다. 다음 예제에서는 Grafana의 시간 선택기를 기반으로 에포크 타임스탬프를 필터링하는 데 도움이 되는 `$__timeFilter(<time_column>, "epoch" <format>)` 매크로를 설명합니다. 매크로에서 형식은 ms, s 또는 ns 중 하나일 수 있습니다. 지정하지 않으면 s가 기본 형식으로 처리됩니다.

```
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP") AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch") -- Example : TIMESTAMP field stored in epoch_second format 1257894000
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP") AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","s") -- Example : TIMESTAMP field stored in epoch_second format 1257894000
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","ms") -- Example : TIMESTAMP field stored in epoch_ms format 1257894000000
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000000000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","ns") -- Example : TIMESTAMP field stored in epoch_nanoseconds format 1257894000000000000
```

\$1\$1\$1timeFilter에 세 번째 인수를 사용하는 대신 두 번째 인수로 epoch\$1s, epoch\$1ms 또는 epoch\$1ns 중 하나를 사용할 수 있습니다.

```
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","ms")
-- is same as
SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch_ms")
```

**\$1\$1\$1fromTimeFilter() 및 \$1\$1\$1toTimeFilter() 매크로**

`$__fromTimeFilter()` 매크로는 Grafana 시간 선택기의 시작 시간을 기반으로 시간 필드에 대한 조건으로 확장됩니다.

이 경우 세 가지 파라미터가 수락됩니다. 첫 번째 파라미터는 시간 필드 이름입니다. comparison\$1predicate 또는 시간 열의 형식을 두 번째 인수로 전달할 수 있습니다. 둘 다 전달하려면 형식이 두 번째 파라미터이고 comparison\$1predicate를 세 번째 파라미터로 사용합니다.

**<format>** 형식을 지정하지 않은 경우 플러그인에서는 시간 열이 타임스탬프/날짜 유형이라고 가정합니다. 시간 열이 타임스탬프/날짜 이외의 다른 형식으로 저장되는 경우 이 형식을 두 번째 인수로 전달합니다. <format>은 epoch\$1s, epoch\$1ms,epoch\$1ns 또는 YYYY-MM-DD와 같은 기타 사용자 지정 형식 중 하나일 수 있습니다.

**<comparison\$1predicate>** 선택적 파라미터. 전달되지 않으면 플러그인은 >를 비교 조건자로 사용합니다. <comparison\$1predicate>는 =, \$1=, <>, <, <=, >, >= 중 하나일 수 있습니다.

`$__toTimeFilter()`는 \$1\$1\$1fromTimeFilter()와 동일하게 작동합니다. Grafana의 시간 시간을 사용하는 대신 종료 시간을 사용합니다. 또한 기본 비교 조건자는 <입니다.

**\$1\$1\$1timeGroup(<time\$1column>, <interval>)** 

예를 들어 쿼리에서 \$1\$1\$1timeGroup(timecol,1h) 매크로는 SERIES\$1ROUND("timecol", 'INTERVAL 1 HOUR')로 확장됩니다.

다음 예제에서는 `$__timeGroup(<time_column>, <interval>) macro.`를 설명합니다.

```
SELECT $__timeGroup(timestamp,1h),  "user", sum("value") as "value"
FROM "salesdata"
WHERE $__timeFilter("timestamp")
GROUP BY $__timeGroup(timestamp,1h), "user"
ORDER BY $__timeGroup(timestamp,1h) ASC
```

다음 쿼리로 변환됩니다. 여기서 `$__timeGroup(timestamp,1h)`은 `SERIES_ROUND("timestamp", 'INTERVAL 1 HOUR')`로 확장됩니다.

```
SELECT SERIES_ROUND("timestamp", 'INTERVAL 1 HOUR') as "timestamp",  "user", sum("value") as "value"
FROM "salesdata"
WHERE "timestamp" > '2020-01-01T00:00:00Z' AND "timestamp" < '2020-01-01T23:00:00Z'
GROUP BY SERIES_ROUND("timestamp", 'INTERVAL 1 HOUR'), "user"
ORDER BY "timestamp" ASC
```

**참고**  
\$1\$1\$1timeGroup 매크로와 함께 그룹을 사용하는 경우 선택, 정렬 기준 필드가 그룹화 기준 필드와 동일한 이름을 따르는지 확인합니다. 그렇지 않으면 HANA에서 쿼리를 인식하지 못할 수 있습니다.

\$1\$1\$1timeGroup() 함수에서 간격을 하드 코딩하지 않으려면 \$1\$1\$1interval을 간격으로 지정하여 Grafana에 그대로 둘 수 있습니다. Grafana는 대시보드 시간 범위에서 해당 간격을 계산합니다. 쿼리 예제:

```
SELECT $__timeGroup(timestamp, $__interval), sum("value") as "value"
FROM "salesdata"
WHERE $__timeFilter("timestamp")
GROUP BY $__timeGroup(timestamp, $__interval)
ORDER BY $__timeGroup(timestamp, $__interval) ASC
```

이 쿼리는 대시보드 시간 범위를 기반으로 후속 쿼리로 변환됩니다.

```
SELECT SERIES_ROUND("timestamp", 'INTERVAL 1 MINUTE'), sum("value") as "value"
FROM "salesdata"
WHERE "timestamp" > '2019-12-31T23:09:14Z' AND "timestamp" < '2020-01-01T23:17:54Z'
GROUP BY SERIES_ROUND("timestamp", 'INTERVAL 1 MINUTE')
ORDER BY SERIES_ROUND("timestamp", 'INTERVAL 1 MINUTE') ASC
```

### 알림


**Grafana에서 SAP HANA 알림을 설정하는 방법**

1. 대시보드에서 그래프 패널을 생성하세요.

1. 시계열 형식으로 SAP HANA 쿼리를 생성하세요.

1. **알림** 탭을 선택하고 알림 기준을 지정하세요.

1. **규칙 테스트**를 선택하여 알림 쿼리를 테스트하세요.

1. 알림 수신자, 메시지 및 오류 처리를 지정하세요.

1. 대시보드를 저장합니다.

#### 시계열 외 데이터에 대한 알림


시계열 외 데이터를 알리려면 `TO_TIMESTAMP('${__to:date}')` 매크로를 사용하여 시계열이 아닌 지표를 시계열로 만듭니다. 그러면 지표가 단일 시점 시계열 쿼리로 변환됩니다. 아래에 쿼리 형식이 제공됩니다.

```
SELECT TO_TIMESTAMP('${__to:date}'),  <METRIC> FROM <TABLE≶ WHERE <YOUR CONDITIONS>
```

다음 예제에서는 테이블에 username, age, city 및 role이라는 네 개의 필드가 있습니다. 이 테이블에는 시간 필드가 없습니다. dev role의 사용자 수가 3명 미만인 경우 이를 알리려고 합니다.

```
SELECT  TO_TIMESTAMP('${__to:date}'), count(*) as "count" FROM (
   SELECT 'John' AS "username", 32 AS "age", 'Chennai' as "city", 'dev' as "role" FROM dummy
   UNION ALL SELECT 'Jacob' AS "username", 32 AS "age", 'London' as "city", 'accountant' as "role" FROM dummy
   UNION ALL SELECT 'Ali' AS "username", 42 AS "age", 'Delhi' as "city", 'admin' as "role" FROM dummy
   UNION ALL SELECT 'Raja' AS "username", 12 AS "age", 'New York' as "city", 'ceo' as "role" FROM dummy
   UNION ALL SELECT 'Sara' AS "username", 35 AS "age", 'Cape Town' as "city", 'dev' as "role" FROM dummy
   UNION ALL SELECT 'Ricky' AS "username", 25 AS "age", 'London' as "city", 'accountant' as "role" FROM dummy
   UNION ALL SELECT 'Angelina' AS "username", 31 AS "age", 'London' as "city", 'cxo' as "role" FROM dummy
) WHERE "role" = 'dev'
```

# ServiceNow 데이터 소스에 연결
ServiceNow

ServiceNow 인스턴스에 연결하는 데 사용되는 ServiceNow 데이터 소스입니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 특성

+  쿼리 
  +  통계 API 쿼리 
  +  테이블 API 쿼리 
    +  인시던트, 변경 사항 및 기타 테이블 
+  알림 
+  주석(베타 기능) 
+  템플릿 변수 

## 구성


 Grafana의 왼쪽 패널에서 데이터 소스를 선택하세요.

 데이터 소스 추가를 선택하세요.

 **servicenow**를 입력하여 데이터 소스 플러그인을 찾습니다.

 ServiceNow URL을 입력합니다.

 **저장 및 테스트**를 선택합니다. 'ServiceNow 연결 확인'이라는 녹색 메시지가 표시됩니다.

### 대시보드 예제


 사전 생성된 대시보드는 플러그인에 포함되며 대시보드 탭 아래에서 데이터 소스 구성 페이지를 통해 가져올 수 있습니다.

## 사용법


 쿼리 편집기에서 데이터를 반환하는 두 가지 방법이 있습니다.
+  TableAPI 
+  AggregateAPI 

 사용자는 현재 다음과 같이 사전 정의된 테이블 쿼리 중에서 선택할 수 있습니다.
+  변경 사항 
+  인시던트 

 또는 `v1.4.0`부터 **기타(사용자 지정 테이블)** 옵션을 사용하는 API 기반 테이블 및 필드 목록. 이 옵션을 사용하면 ServiceNow 데이터 소스를 설정하는 데 사용되는 사용자가 사용할 수 있는 테이블에 있는 데이터를 쿼리할 수 있습니다.

 **사용자 지정 테이블** 옵션은 사전 정의된 테이블 목록과 동일한 모든 기능을 지원해야 합니다.

### TableAPI 쿼리


 TableAPI는 테이블 패널에 표시하기에 적합한 데이터를 반환합니다. 이를 통해 정렬된 필드 선택을 통해 필터링 추가 옵션을 표시할 수 있습니다. 쿼리 편집기에서는 쿼리에서 반환되는 행 수를 제한하는 필드도 제공합니다.

 이전 쿼리의 결과를 보여주는 예제 테이블 패널.

#### 표시


 *표시* 행에서는 표시할 필드의 선택기를 제공합니다. 여러 필드를 지정할 수도 있습니다. 필드는 지정된 정확한 순서로 반환됩니다.

#### 값 표시


 *값 표시* 플래그를 사용하면 쿼리에서 숫자 값 대신 값을 표시하거나 인간 친화적인 값을 반환합니다.

 예를 들어 이 플래그가 없는 `1`의 심각도는 `1`만 표시합니다. 플래그가 활성화된 경우 표시되는 값은 `1 - High`입니다.

 [ServiceNow API 설명서](https://developer.servicenow.com/dev.do#!/reference/api/orlando/rest/c_TableAPI)에 따르면 성능에 부정적인 영향을 미칠 수 있습니다.

**참고**  
 [...] 표시 값을 지정하면 데이터베이스에서 직접 읽지 않고 다른 필드 및 레코드 참조를 포함할 수 있으므로 성능 문제가 발생할 수 있습니다.

#### 필터(일반)


 *필터* 행에서는 여러 필드 및 값 기준을 기반으로 표시된 행을 좁힐 수 있는 기능을 제공합니다.

 모든 필터는 *AND* 또는 *OR* 연산으로 결합됩니다.

 사용자 지정 테이블을 사용하지 않는 경우 다음 필드를 사용할 수 있습니다(이 목록은 향후 확장됨).

```
Active
Asset
Group
Assigned To
Escalation
Issue Number
Description
Priority
State
Type
Change Risk
Change State
Start Date
End Date
On Hold
```

 사용자 지정 테이블을 선택하면 ServiceNow API에서 필드가 자동으로 채워집니다.

##### 날짜 필터



|  시간 필드  |  연산자  |  값  | 
| --- | --- | --- | 
|  열린 시점  |  해당 시점 또는 이전 오늘 오늘 아님 해당 시점 이전 또는 이전 해당 시점 이후 또는 이후  |  timestamp javascript:gs.daysAgo(30)  | 
|  활동 기한  |   |   | 
|  종료 시점  |   |   | 
|  기한  |   |   | 
|  예상 시작  |   |   | 
|  다시 열린 시간  |   |   | 
|  해결된 시점  |   |   | 
|  작업 종료  |   |   | 
|  작업 시작  |   |   | 
|  시간 무시  |   |   | 

 추가 날짜 값은 다음을 참조하세요. https://developer.servicenow.com/app.do\$1\$1/api\$1doc?v=newyork&id=r\$1SGSYS-dateGenerate\$1S\$1S 

##### 연산자(일반, 문자열 기반)

+  Starts With(다음으로 시작) 
+  Ends With 
+  좋아요 
+  싫어요 
+  같음 
+  같지 않음 
+  Is Empty 

##### 연산자(시간 기반)

+  오늘 
+  오늘 아님 
+  Before 
+  해당 시점 또는 이전 
+  After 
+  해당 시점 또는 이후 

##### 값


 값 선택은 선택한 필터 유형에 따라 다릅니다.
+  부울 필터에는 True/False 옵션이 있음 
+  텍스트 필터를 사용하면 값을 입력할 수 있음 
+  에스컬레이션, 우선순위에는 고정된 숫자 값 세트가 있음 

#### 정렬 기준


 *정렬 기준* 행에서는 여러 필드 및 값 기준을 기반으로 표시된 행을 좁힐 수 있는 기능을 제공합니다.

 모든 필터는 *AND* 연산으로 결합됩니다. 추가 연산자에 대한 지원이 추가됩니다.

#### Limit


 너무 많은 데이터를 반환하지 않도록 행 제한을 지정할 수 있습니다. 기본값은 25입니다.

#### 시간 필드


 `Time Field`는 쿼리된 데이터를 시계열로 변환합니다. 시계열로 처리되는 데이터는 대시보드/패널의 시간 범위에 속하지 않는 선택한 '시간 필드'의 값이 표시되지 않음을 의미합니다.

 사용되는 기본 시간 필드는 '열린 시점'이지만, 시간 값을 포함하는 사용 가능한 필드로 변경할 수 있습니다.

 결과에서 '지금까지'를 허용하고 필터가 표시되는 데이터를 제어할 수 있도록 특수 값 '시간 무시'가 제공됩니다.

### AggregateAPI 쿼리(통계)


 AggregateAPI는 항상 평균, 최소, 최대, 합계와 같은 집계와 함께 지표를 반환합니다. 쿼리를 좁히는 데도 필터링을 사용할 수 있습니다.

#### 표시


 *표시* 행에서는 표시할 지표의 선택기를 제공합니다. 여러 지표를 지정할 수도 있습니다.

#### 필터(일반)


 집계 *필터*는 테이블 옵션과 마찬가지로 필드 및 값 기준을 기반으로 표시된 지표를 좁힐 수 있는 기능을 제공합니다.

 모든 필터는 *AND* 연산으로 결합됩니다. 추가 연산자에 대한 지원이 추가됩니다.

 통계 필터 옵션은 TableAPI와 동일합니다.

#### 집계


 지표 집계에는 다음과 같은 네 가지 유형과 '개수'가 있습니다.
+  평균 
+  최소 
+  최대 
+  Sum 
+  개수 - 쿼리에서 반환된 지표의 '숫자'를 반환합니다.

##### 그룹화 기준


 이 선택기는 지표를 더 적은 집계로 분할하는 기능을 제공합니다. '우선순위'를 기준으로 그룹화하면 우선순위의 '태그'가 지정되고 고유 값이 구분된 지표가 반환됩니다.

### 템플릿 지정


 쿼리에서 이름을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 쿼리 변수를 추가하고 템플릿 값을 사용하여 참조하는 방법은 **쿼리 변수** 섹션의 예제를 참조하세요.

#### 쿼리 변수


 `Query` 유형의 템플릿 변수를 추가하는 경우 드롭다운 선택 상자로 표시되는 범주 이름, 키 이름 또는 키 값과 같은 항목을 반환할 수 있는 쿼리를 작성할 수 있습니다.

 예를 들어 템플릿 지정 변수 **쿼리 설정에서 이와 같은 쿼리를 지정하여 `categories`의 모든 값을 포함하는 변수를 가질 수 있습니다.

 **쿼리** 설정을 선택하면 **필터** 섹션이 표시되어 **유형** 및 **필드**를 선택할 수 있습니다. 현재 **유형**은 인시던트 및 변경 사항으로 제한됩니다. 유형을 선택하면 해당 유형에 적용되는 필드 목록이 제공됩니다. **유형** 및 **필드**를 선택하면 해당 유형/필드에 사용할 수 있는 옵션을 보여주는 값 미리 보기가 하단에 표시됩니다. 이러한 값은 대시보드의 드롭다운 목록에 표시되며, 이 목록은 템플릿 지정과 함께 대시보드 패널의 데이터를 필터링하는 데 사용할 수 있습니다.

 예를 들어 이름이 *category*인 변수를 추가하고 유형 = 인시던트 및 필드 = 카테고리를 선택하면 범주에 대한 옵션 목록이 표시됩니다. 그런 다음, 패널에 필터를 추가하고 카테고리 같음 \$1\$1category\$1 항목을 선택하면 대시보드 드롭다운 목록에서 선택한 해당 카테고리에 대한 데이터만 패널 데이터에 표시됩니다.

 **카테고리별 인시던트** 대시보드를 가져와 예제를 확인합니다.

#### 쿼리에서 변수 사용


 두 가지 구문이 있습니다.

 `$<varname>`: 템플릿 변수 이름이 `hostname`인 예제: 

 `[[varname]]`: 템플릿 변수 이름이 `hostname`인 예제: 

## 알림


 표준 Grafana 알림이 지원됩니다. 그래프 패널에 정의된 모든 쿼리를 사용하여 알림을 생성할 수 있습니다.

 다음은 예제 쿼리 및 알림입니다. 이 쿼리는 모든 미해결의 중요한 높은 우선순위 인시던트에 대한 그래프를 반환합니다.

 이 알림은 미해결의 중요한 높은 우선순위의 인시던트가 5개를 초과할 때 시작됩니다.

 알림 규칙을 테스트하면 알림 규칙의 출력이 표시되고 상태 기록을 선택하면 알림이 정상에서 보류 중을 거쳐 알림 전달 중으로 표시됩니다.

 그래프 보기에 세로선이 표시되고 알림이 보류 중인 동안에는 상단의 하트 아이콘이 주황색으로 바뀝니다.

 알림 기준이 충족되면 규칙이 빨간색으로 전환됩니다.

 그래프 보기에 빨간색 세로선이 나타나고 상단의 하트 아이콘이 빨간색으로 바뀝니다.

### 알림을 위한 인시던트 작성


 **베타 기능** 
+  ServiceNow 데이터 소스에 대한 알림 채널을 구성합니다.

 그러면 구성된 사용자를 사용하여 이 데이터 소스에 대한 ServiceNow 인스턴스에서 인시던트를 생성하는 [Grafana 알림 채널](https://grafana.com/docs/grafana/latest/alerting/notifications/)이 구성됩니다.

 이 작업을 수행하려면 ServiceNow 데이터 소스 사용자에게 인시던트를 작성할 수 있는 권한이 있어야 합니다.

## Annotations


 Grafana 주석은 이 데이터 소스의 `v1.4.0`부터 **베타 기능**으로 제공됩니다. 주석을 사용하면 그래프에 이벤트를 오버레이할 수 있습니다.

 주석 쿼리는 몇 가지 사소한 차이는 있지만 표준 쿼리 편집기와 동일한 옵션을 지원합니다.
+  '표시' 열 하나만 선택할 수 있습니다. 이는 향후 개선에서 수정될 가능성이 큽니다.
+  시간 필드는 필수입니다.

## FAQ


### ITSM 역할 플러그인이 없는 경우 어떻게 해야 하나요?


 **다음 작업을 수행하려면 관리자 액세스가 필요함** 

 옵션 1: 모든 테이블에 대한 액세스를 허용하는 관리자 권한을 Grafana 사용자에게 부여합니다.

 옵션 2: 역할을 생성하고 Grafana에서 액세스해야 하는 모든 테이블에 ACL을 적용합니다.

 다음 작업을 수행하려면 관리자 액세스가 필요합니다.

1.  로그인한 관리자는 security\$1admin에 대한 액세스를 승격해야 합니다.

   1.  오른쪽 상단 탐색 창에서 프로파일 아이콘을 선택하세요. 프로파일 아이콘에는 드롭다운 캐럿 표시기가 있습니다.

   1.  드롭다운 메뉴에서 **역할 승격**를 선택하세요.

   1.  표시된 모달에서 **security\$1admin** 확인란을 선택하세요.

   1.  확인을 선택합니다.

1. 원하는 명명 규칙을 사용하여 새 역할을 생성하세요.

   1.  왼쪽 탐색 시스템 보안 => 사용자 및 그룹 => 역할에서 역할 섹션으로 이동하세요.

   1.  상단에서 **새로 만들기**를 선택하세요.

   1.  역할 이름 및 관련 설명을 입력하세요.

   1.  **제출**을 선택합니다.

1.  새 사용자를 생성하거나 필요한 역할을 가진 기존 사용자를 수정하세요.

   1.  2단계에서 생성한 역할 

   1.  personalize\$1dictionary 

   1.  personalize\$1choices 

   1.  cmdb\$1read(모든 cmdb 테이블에 대한 읽기 액세스 권한을 부여함) 

1.  필수 테이블 및 필드에 대한 테이블 ACL을 생성하세요.

   1.  sys\$1db\$1object 테이블에 대한 ACL을 생성하세요.

     1.  두 번째 검색 헤더 열 **이름**에 **sys\$1db\$1object**를 입력하고 **Enter**를 누르세요.

     1.  필터링된 결과에 **테이블**이 표시되어야 합니다. **테이블**을 선택하여 레코드로 이동하세요.

     1.  탭 섹션에서 **제어**를 선택하세요.

     1.  페이지 하단에서 **액세스 제어**가 선택한 탭인지 확인하세요.

     1.  새 ACL을 생성하려면 **새로 만들기**를 선택하세요.

     1.  **작업** 선택 항목을 읽기로 변경하세요.

     1.  화면 하단의 **역할 필요** 섹션에서 **새 행 삽입**을 선택하고(두 번 클릭) 생성한 역할을 검색하세요.

     1. 생성한 역할을 선택한 후 녹색 확인 표시를 선택하세요.

     1.  화면 하단에서 **제출**을 선택하여 ACL을 생성한 다음, 모달이 나타나면 **계속**을 선택하세요.

1.  특정 sys\$1db\$1object 필드에 대한 ACL을 생성하세요. 이름, 레이블, 표시 이름 및 확장 테이블 필드에 대해 다음 단계를 반복해야 합니다.

   1.  sys\$1db\$1object에 대한 테이블 레코드 보기에 있는 동안 화면 상단에 가장 가까운 탭 그룹에서 **열** 탭을 선택하세요.

   1.  필드 이름을 찾아 선택하세요.

   1.  하단 탭 섹션의 **액세스 제어** 탭에서 **새로 만들기**를 선택하세요.

   1.  작업을 읽기로 변경하세요.

   1.  하단의 '역할 필요' 테이블에서 행 텍스트 삽입을 선택하세요(두 번 클릭).

   1.  생성한 역할을 검색하고 녹색 확인 표시를 선택하세요.

   1.  **제출**을 선택합니다.

   1.  이름, 레이블, 표시 이름 및 확장 테이블 등 모든 필수 필드에 대해 다음 단계를 반복했는지 확인하세요.

1.  Grafana에서 쿼리하려는 변경, 인시던트 및 기타 CMDB 이외의 테이블에 대해 4.1 이후 단계를 반복하세요. 4.2 이후 단계는 반복하지 마세요. 이 단계는 sys\$1db\$1object에만 필요합니다.

# Snowflake 데이터 소스에 연결
Snowflake

 Snowflake Enterprise 데이터 소스를 사용하면 Grafana의 다른 모든 데이터 소스와 함께 Snowflake 데이터를 시각화하고 컨텍스트의 로그 및 지표 데이터를 시각화할 수 있습니다. 이 데이터 소스에는 강력한 미리 입력 쿼리 편집기가 포함되어 있으며, 복잡한 주석을 지원하고, 알림 임계치를 설정하며, 액세스 및 권한을 제어하는 등의 작업을 지원합니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 개요


### Snowflake란 무엇인가요?


 Snowflake는 데이터 웨어하우징, 데이터 레이크, 데이터 엔지니어링, 데이터 과학, 데이터 애플리케이션 개발 및 데이터 공유를 위한 솔루션을 제공하는 클라우드 기반 데이터 스토리지 및 분석 서비스('서비스형 데이터 웨어하우스)를 제공합니다. 지난 몇 년 동안 Snowflake는 클라우드 기반 하드웨어 및 소프트웨어를 사용하여 데이터를 저렴하게 저장하고 분석할 수 있는 능력으로 엄청난 인기를 얻었습니다. 최근에는 최대의 소프트웨어 IPO를 기록하며 정점을 이루었습니다. 오늘날 많은 기업이 Snowflake를 기본 데이터베이스로 사용하여 트랜잭션 수, 활성 사용자 세션, 시계열 및 지표 데이터와도 같은 애플리케이션 및 비즈니스 데이터를 저장합니다.

### Snowflake 및 Amazon Managed Grafana 최대한 활용


 **Snowflake 데이터를 이동하지 않고 시각화**: Grafana의 고유한 아키텍처는 데이터를 이동하고 중복 스토리지 및 수집 비용을 지불하는 대신 데이터가 있는 곳에서 직접 쿼리합니다.

 **다양한 소스의 패널 구성:** 사전 빌드된 대시보드와 사용자 지정 대시보드를 사용하여 다양한 데이터 소스의 데이터를 단일 창으로 가져옵니다.

 **사용자 수준에서의 변환 및 컴퓨팅**: 사용자는 데이터 준비 노력을 거의 들이지 않고도 데이터를 변환하고 보고 있는 데이터에서 다양한 계산을 실행할 수 있습니다.

 **패널 내에서 결합, 컴퓨팅 및 시각화**: Snowflake 및 기타 소스의 관련 데이터를 표시하는 혼합 데이터 소스 패널을 생성합니다.

### 특성


 **쿼리 편집기:** 쿼리 편집기는 시계열 또는 테이블 데이터를 시각화하고, SQL 구문 오류를 처리하며, 기본 SQL 키워드를 자동 완성할 수 있는 스마트 SQL 자동 완성 편집기입니다.

 **데이터 소스 권한:** Grafana에서 Snowflake 데이터를 보거나 쿼리할 수 있는 사용자 제어 

 **주석:** 이벤트를 다른 그래프 데이터와 상관시키기 위해 모든 Grafana 그래프에서 Snowflake 이벤트를 오버레이합니다.

 **알림:** Snowflake에서 알림 기반 지표 저장소 설정 

 **쿼리용 변수:** Snowflake 데이터를 기반으로 Grafana에서 템플릿 변수를 생성하고 Snowflake 쿼리에 변수를 포함하여 대시보드를 대화형으로 만듭니다.

 **다중 지표 쿼리:** 각각 자체 열에 여러 지표를 반환하는 단일 쿼리를 작성합니다.

## Snowflake 플러그인 시작하기


 다음은 Grafana에서 Snowflake 플러그인을 시작하는 간단한 5단계입니다.

### 1단계: Snowflake 데이터 소스 설정


 데이터 소스를 구성하려면 **구성**, **데이터 소스 **, **데이터 소스 추가**, Snowflake를 선택하세요.

 인증 세부 정보를 추가하면 데이터 소스가 쿼리할 준비가 됩니다\$1

 다음 구성 필드를 사용할 수 있습니다.


|  이름  |  설명  | 
| --- | --- | 
|  Account  |  Snowflake 계정. | 
|  사용자 이름  |  서비스 계정에 대한 사용자 이름. | 
|  암호  |  서비스 계정에 대한 암호. | 
|  스키마(선택 사항)  |  쿼리에 대한 기본 스키마를 설정합니다. | 
|  웨어하우스(선택 사항)  |  쿼리에 대한 기본 웨어하우스를 설정합니다. | 
|  데이터베이스(선택 사항)  |  쿼리에 대한 기본 데이터베이스를 설정합니다. | 
|  역할(선택 사항)  |  쿼리에 대한 역할을 수임합니다. | 

### 2단계: Snowflake 데이터에 대한 쿼리 작성


 대시보드에서 패널을 생성하고 Snowflake 데이터 소스를 선택하여 쿼리 편집기 사용을 시작하세요.
+  날짜/시간은 쿼리가 포함되어 있는 한 쿼리의 모든 위치에 표시될 수 있습니다.
+  숫자 열을 포함해야 합니다. 집계 또는 int/float 열일 수 있습니다.
+  시계열 데이터 형식이 지표마다 다르게 지정된 경우 선택적으로 문자열 열을 포함하여 별도의 데이터 시리즈를 생성할 수 있습니다.

#### Snowflake 쿼리의 레이아웃


```
select
  <time_column>,
  <any_numerical_column>
  <other_column_1>,
  <other_column_2>,
  <...>
from
  <any_table>
where
  $__timeFilter(<time_column>) // predefined where clause for time range
  and $<custom_variable> = 1 // custom variables start with dollar sign
```

#### 시계열 그룹화 기준 시간 간격에 대한 SQL 쿼리 형식


```
select
  $__timeGroup(created_ts, '1h'), // group time by interval of 1h
  <time_column>, 
  <any_numerical_column>,
  <metric_column>
from
  <any_table>
where
  $__timeFilter(<time_column>) // predefined where clause for time range
  and $<custom_variable> = 1 // custom variables start with dollar sign
group by <time_column>
```

#### 테이블에 대한 SQL 쿼리 형식


```
select
  <time_column>, // optional if result format option is table
  <any_column_1>
  <any_column_2>
  <any_column_3>
from
  <any_table>
where
  $__timeFilter(time_column) // macro for time range, optional if format as option is table
  and $<custom_variable> = 1 // custom variables start with dollar sign
```

### 3단계: 템플릿 변수 생성 및 사용


#### 템플릿 변수 사용


 다음 예제와 같이 쿼리에 템플릿 변수를 포함할 수 있습니다.

```
 select
   <column>
 from 
   <table>
 WHERE column >= '$variable'
```

 다음 예제에서는 쿼리에서 다중 값 변수 사용을 보여줍니다.

```
select
  <column>
from 
  <table>
WHERE <column> regexp '${variable:regex}'
```

#### Snowflake 데이터 소스를 사용하여 변수 생성


 대시보드 설정에서 **변수**를 선택하고 **새로 만들기**를 선택하세요.

 '쿼리' 변수 유형을 사용하여 Snowflake 데이터 소스를 '데이터 소스'로 선택하세요.

**중요**  
 변수 쿼리에서 열 하나만 선택해야 합니다.

 예제: 

```
SELECT DISTINCT query_type from account_usage.query_history;
```

 다음과 같은 변수를 제공합니다.

```
All DESCRIBE USE UNKNOWN GRANT SELECT CREATE DROP SHOW
```

### 4단계: 알림 설정


 특정 Snowflake 지표 또는 사용자가 생성한 쿼리에 대해 알림을 설정할 수 있습니다.

 쿼리 편집기에서 알림 탭 버튼을 선택하고 **알림 생성**을 선택하세요.

### 5단계. 주석 생성


 주석을 사용하면 그래프에서 이벤트를 오버레이할 수 있습니다.

 주석을 생성하려면 대시보드 설정에서 **주석**, **새로 만들기**를 선택하고 Snowflake를 데이터 소스로 선택하세요.

 주석은 이벤트이므로 이벤트를 설명하려면 하나 이상의 열 및 하나의 열이 필요합니다.

 다음 코드 예제에서는 Snowflake로의 모든 로그인 실패에 주석을 달기 위한 쿼리를 보여줍니다.

```
SELECT
  EVENT_TIMESTAMP as time,
  EVENT_TYPE,
  CLIENT_IP
FROM ACCOUNT_USAGE.LOGIN_HISTORY
WHERE $__timeFilter(time) AND IS_SUCCESS!='YES'
ORDER BY time ASC;
```

 및 
+  시간: `TIME` 
+  제목: `EVENT_TYPE` 
+  텍스트: `CLIENT_IP` 

 이렇게 하면 대시보드 패널에서 Snowflake로의 모든 로그인 실패에 대한 주석이 오버레이됩니다.

## 추가 기능


### 표시 이름 필드 사용


 이 플러그인은 옵션 패널의 필드 탭에 있는 표시 이름 필드를 사용하여 이름, 레이블 또는 값에 따라 범례 키를 축약하거나 변경합니다. 다른 데이터 소스에서는 사용자 지정 `alias` 기능을 사용하여 범례 키를 수정하지만, 표시 이름 함수는 이를 수행하는 보다 일관된 방법입니다.

### 데이터 소스 권한


 데이터 소스 구성 페이지에서 **권한** 탭을 선택해 데이터 소스 권한을 활성화하여 Snowflake에 대한 액세스를 제한합니다. 권한 페이지에서 관리자는 권한을 활성화하고 특정 사용자 및 팀으로 쿼리 권한을 제한할 수 있습니다.

### Snowflake 결제 및 사용량 데이터 이해


 Snowflake 데이터 소스 내에서 유용한 결제 및 사용량 정보를 보여주는 결제 및 사용량 대시보드를 가져올 수 있습니다.

 Snowflake 데이터 소스 구성 페이지에서 대시보드를 추가하세요.

 이 대시보드는 ACCOUNT\$1USAGE 데이터베이스를 사용하며 쿼리 수행자는 ACCOUNTADMIN 역할을 보유해야 합니다. 이를 안전하게 수행하려면 ACCOUNTADMIN 역할의 사용자가 있는 새 Grafana 데이터 소스를 생성합니다. 그런 다음, 변수에서 해당 데이터 소스를 선택하세요.

# Splunk 데이터 소스에 연결
Splunk

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 구성


### 데이터 소스 구성


 데이터 소스를 구성할 때 URL 필드가 `https`를 사용하고 구성된 Splunk 포트를 가리키는지 확인합니다. 기본 Splunk API 포인트는 8000이 아닌 8089입니다(기본 웹 UI 포트임). **기본 인증을 활성화하고 Splunk 사용자 이름과 암호를 지정합니다.

#### 브라우저(직접) 액세스 모드 및 CORS


 Amazon Managed Grafana는 Splunk 데이터 소스에 대한 브라우저 직접 액세스를 지원하지 않습니다.

### 고급 옵션


#### 스트림 모드


 검색 결과가 사용 가능해질 때 검색 결과를 가져오도면 스트림 모드를 활성화합니다. 이 기능은 실험적 기능이므로 실제로 필요할 때까지 활성화하지 마세요.

#### 결과 폴링


 검색을 실행한 다음, 주기적으로 결과를 확인합니다. 후드에서 이 옵션은 `exec_mode`가 `normal`로 설정된 `search/jobs` API 직접 호출을 실행합니다. 이 경우 API 요청은 작업 SID를 반환한 다음, Grafana는 작업 결과를 얻기 위해 때때로 작업 상태를 확인합니다. 이 옵션은 느린 쿼리에 유용할 수 있습니다. 기본적으로 이 옵션은 비활성화되어 있으며 Grafana는 `exec_mode`를 `oneshot`으로 설정하여 동일한 API 직접 호출에서 검색 결과를 반환할 수 있습니다. [Splunk 문서](https://docs.splunk.com/Documentation/Splunk/latest/RESTREF/RESTsearch#search.2Fjobs)에서 `search/jobs` API 엔드포인트에 대해 자세히 알아보세요.

#### 검색 폴링 간격


 이 옵션을 사용하면 Amazon Managed Grafana에서 검색 결과를 위해 Splunk를 폴링하는 빈도를 조정할 수 있습니다. [최소, 최대) 간격에서 무작위로 선택하는 다음 폴링 시간. 대량 검색을 많이 실행하는 경우 이 값을 늘리는 것이 좋습니다. 팁: 검색 작업 실행에 시간이 오래 걸리는 경우 **최소를 늘리고 병렬 검색을 많이 실행하는 경우(Grafana 대시보드에서 많은 Splunk 지표) **최대를 늘립니다. 기본값은 [500, 3000)밀리초 간격입니다.

#### 자동 취소


 지정된 경우 작업이 이 기간(초 단위)에 활동이 없으면 자동으로 취소됩니다(0은 자동 취소 없음). 기본값은 30입니다.

#### 상태 버킷


 생성할 최대 상태 버킷. 0은 타임라인 정보를 생성하지 않음을 나타냅니다. 기본값은 300입니다.

#### 필드 검색 모드


 시각적 쿼리 편집기를 사용하는 경우 데이터 소스는 선택한 소스 유형에 사용 가능한 필드 목록을 가져오려고 시도합니다.
+  빠른 - 미리 보기에서 사용 가능한 첫 번째 결과를 사용합니다.
+  전체 - 작업이 완료될 때까지 기다렸다가 전체 결과를 얻습니다.

#### 가장 빠른 기본 시간


 일부 검색에서는 대시보드 시간 범위(예: 템플릿 변수 쿼리)를 사용할 수 없습니다. 이 옵션은 항상 검색을 방지하여 Splunk 속도를 늦출 수 있습니다. 구문은 정수 및 시간 단위 `[+|-]<time_integer><time_unit>`입니다. 예: `-1w`. [시간 단위](https://docs.splunk.com/Documentation/Splunk/latest/Search/Specifytimemodifiersinyoursearch)는 `s, m, h, d, w, mon, q, y`일 수 있습니다.

#### 변수 검색 모드


 템플릿 변수 쿼리를 위한 검색 모드입니다. 가능한 값은 다음과 같습니다.
+  빠른 - 이벤트 검색을 위한 필드 검색을 끕니다. 통계 검색을 위한 이벤트 또는 필드 데이터가 없습니다.
+  스마트 - 이벤트 검색을 위한 필드 검색을 켭니다. 통계 검색을 위한 이벤트 또는 필드 데이터가 없습니다.
+  상세 - 모든 이벤트 및 필드 데이터.

## 사용법


### 쿼리 편집기


#### 편집기 모드


 쿼리 편집기는 원시 모드 및 시각적 모드와 같은 두 가지 모드를 지원합니다. 이러한 모드 사이를 전환하려면 편집기 오른쪽에 있는 햄버거 아이콘을 선택하고 **편집기 모드 전환을 선택합니다.

#### 원시 모드


 다음 코드 예제와 같이 시계열 데이터에 대해 `timechart` 명령을 사용합니다.

```
index=os sourcetype=cpu | timechart span=1m avg(pctSystem) as system, avg(pctUser) as user, avg(pctIowait) as iowait
index=os sourcetype=ps | timechart span=1m limit=5 useother=false avg(cpu_load_percent) by process_name
```

 쿼리는 다음 예제와 같이 템플릿 변수를 지원합니다.

```
sourcetype=cpu | timechart span=1m avg($cpu)
```

 Grafana는 시계열 지향 애플리케이션이며 검색은 시계열 데이터(타임스탬프 및 값) 또는 단일 값을 반환해야 합니다. 공식 [Splunk Search Reference](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/WhatsInThisManual)에서 [timechart](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Timechart) 명령에 대해 알아보고 더 많은 검색 예제를 찾을 수 있습니다.

#### Splunk 지표 및 `mstats`


 Splunk 7.x에서는 지표 분석을 위한 `mstats` 명령을 제공합니다. `mstats`에서 차트가 제대로 작동하도록 하려면 `timeseries` 명령과 결합하고 `prestats=t` 옵션을 설정해야 합니다.

```
Deprecated syntax:
| mstats prestats=t avg(_value) AS Value WHERE index="collectd" metric_name="disk.disk_ops.read" OR metric_name="disk.disk_ops.write" by metric_name span=1m
| timechart avg(_value) span=1m by metric_name

Actual:
| mstats prestats=t avg(disk.disk_ops.read) avg(disk.disk_ops.write) WHERE index="collectd" by metric_name span=1m
| timechart avg(disk.disk_ops.read) avg(disk.disk_ops.write) span=1m
```

 [Splunk Search Reference](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Mstats)에서 `mstats` 명령에 대해 자세히 알아보세요.

#### 형식


 지원되는 결과 형식 모드는 **시계열(기본값)과 **테이블입니다. 테이블 모드는 집계된 데이터를 표시하려는 경우 테이블 패널과 함께 사용하는 데 적합합니다. 원시 이벤트(선택한 모든 필드를 반환) 및 테이블과 유사한 데이터를 반환하는 `stats` 검색 함수와 함께 작동합니다. 예시: 

```
index="os" sourcetype="vmstat" | fields host, memUsedMB
index="os" sourcetype="ps" | stats avg(PercentProcessorTime) as "CPU time", latest(process_name) as "Process", avg(UsedBytes) as "Memory" by PID
```

 결과는 Splunk UI의 **통계 탭과 유사합니다.

 [Splunk Search Reference](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Stats)에서 `stats` 함수 사용에 대해 자세히 알아보세요.

#### 시각적 모드


이 모드는 단계별 검색 생성을 제공합니다. 이 모드는 `timechart` Splunk 검색을 생성합니다. 인덱스, 소스 유형 및 지표를 선택하고 원하는 경우 분할 기준 필드를 설정하기만 하면 됩니다.

##### 지표


 지표 행 오른쪽에 있는 **더하기 버튼을 선택하여 여러 지표를 추가할 수 있습니다. 지표 편집기에는 자주 사용되는 집계 목록이 포함되어 있지만 여기에서 다른 함수를 지정할 수 있습니다. agg 세그먼트(기본적으로 `avg`)를 선택하고 필요한 항목을 입력하기만 하면 됩니다. 드롭다운 목록에서 관심 필드를 선택하거나 입력하고, 원하는 경우 별칭을 설정합니다.

##### 분위 기준 및 위치


 분할 기준 필드를 설정하고 *시계열* 모드를 사용하는 경우 Where 편집기를 사용할 수 있습니다. **더하기를 선택하고 연산자, 집계 및 값을 선택합니다. 예를 들어 **Where avg in top 10과 같습니다. 이 **Where 절은 *분할 기준*의 일부입니다. [timechart 문서](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/timechart#where_clause)에서 자세히 알아보세요.

#### 옵션


 기본 timechart 옵션을 변경하려면 마지막 행에서 **옵션**을 선택합니다.

[timechart 문서](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/timechart)에서 이러한 옵션에 대해 자세히 알아보세요.

#### 렌더링된 Splunk 검색


 왼쪽에서 대상 문자를 선택하여 편집기를 축소한 후 렌더링된 Splunk 검색을 표시합니다.

### Annotations


그래프에 Splunk 알림 또는 이벤트를 표시하려면 주석을 사용합니다. 주석은 사전 정의된 Splunk 알림 또는 정기적인 Splunk 검색일 수 있습니다.

#### Splunk 알림


 알림 이름을 지정하거나 필드를 비워 두면 모든 알림이실행됩니다. 템플릿 변수가 지원됩니다.

#### Splunk 검색


 다음 예제와 같이 Splunk 검색을 사용하여 필요한 이벤트를 가져옵니다.

```
index=os sourcetype=iostat | where total_ops > 400
index=os sourcetype=iostat | where total_ops > $io_threshold
```

 템플릿 변수가 지원됩니다.

 **텍스트로 이벤트 필드**는 필드 값을 주석 텍스트로 사용하려는 경우 적합합니다. 다음 예제는 로그의 오류 메시지 텍스트를 보여줍니다.

```
Event field as text: _raw
Regex: WirelessRadioManagerd\[\d*\]: (.*)
```

 정규식을 사용하면 메시지의 일부를 추출할 수 있습니다.

### 템플릿 변수


 템플릿 변수 기능은 `stats` 명령과 같은 값 목록을 반환하는 Splunk 쿼리를 지원합니다.

```
index=os sourcetype="iostat" | stats values(Device)
```

 이 쿼리는 `iostat` 소스의 `Device` 필드 값 목록을 반환합니다. 그런 다음, 시계열 쿼리 또는 주석에 이러한 디바이스 이름을 사용할 수 있습니다.

 Grafana에서는 두 가지 유형의 변수 쿼리를 사용할 수 있습니다. 첫 번째는 값 목록을 반환하는 단순 쿼리입니다(앞에서 설명). 두 번째 유형은 키/값 변수를 생성할 수 있는 쿼리입니다. 쿼리에서 `_text` 및 `_value`라는 두 개의 열을 반환해야 합니다. `_text` 열 값은 고유해야 합니다(고유하지 않은 경우 첫 번째 값이 사용됨). 드롭다운 목록의 옵션은 텍스트 및 값을 포함합니다. 이를 통해 친숙한 이름(텍스트) 및 ID(값)를 지정할 수 있습니다.

 예를 들어 이 검색은 열`Name`(Docker 컨테이너 이름) 및 `Id`(컨테이너 ID)가 있는 테이블을 반환합니다.

```
source=docker_inspect | stats count latest(Name) as Name by Id | table Name, Id
```

 컨테이너 이름을 변수 및 ID의 실제 값으로 표시되는 값으로 사용하려면 다음 예제와 같이 쿼리를 수정해야 합니다.

```
source=docker_inspect | stats count latest(Name) as Name by Id | table Name, Id | rename Name as "_text", Id as "_value"
```

#### 다중 값 변수


 쿼리에 다중 값 변수를 사용할 수 있습니다. 보간된 검색은 변수 사용 컨텍스트에 따라 달라집니다. 플러그인에서 지원하는 여러 컨텍스트가 있습니다. 선택한 값 `foo` 및 `bar`가 있는 `$container` 변수가 있다고 가정합니다.
+  `search` 명령의 기본 필터 

  ```
  source=docker_stats $container
  =>
  source=docker_stats (foo OR bar)
  ```
+  필드 값 필터 

  ```
  source=docker_stats container_name=$container
  =>
  source=docker_stats (container_name=foo OR container_name=bar)
  ```
+  `IN` 연산자 및 `in()` 함수가 있는 필드 값 필터 

  ```
  source=docker_stats container_name IN ($container)
  =>
  source=docker_stats container_name IN (foo, bar)
  
  source=docker_stats | where container_name in($container)
  =>
  source=docker_stats | where container_name in(foo, bar)
  ```

#### 다중 값 변수 및 따옴표


 변수를 따옴표(큰따옴표 또는 작은따옴표)로 묶은 경우 다음 예제와 같이 해당 값도 따옴표로 묶습니다.

```
source=docker_stats container_name="$container"
=>
source=docker_stats (container_name="foo" OR container_name="bar")

source=docker_stats container_name='$container'
=>
source=docker_stats (container_name='foo' OR container_name='bar')
```

# Splunk Infrastructure Monitoring 데이터 소스에 연결
Splunk Infrastructure Monitoring

Splunk Infrastructure Monitoring(이전의 SignalFx)에 대한 지원을 제공합니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## 데이터 소스 추가


1.  Amazon Managed Grafana 워크스페이스에서 Grafana 콘솔을 열고 로그인되었는지 확인합니다.

1.  사이드 메뉴의 **구성**(톱니 아이콘) 아래에서 **데이터 소스**를 선택하세요.

1.  **데이터 소스 추가**를 선택합니다.
**참고**  
 사이드 메뉴에 **데이터 소스** 링크가 표시되지 않으면 현재 사용자에게 `Admin` 역할이 없다는 의미입니다.

1.  데이터 소스 목록에서 **Splunk Infrastructure Monitoring**을 선택하세요.

1. 다음 정보를 입력합니다.
   + **액세스 토큰**에 SignalFx 계정에서 생성된 토큰을 입력합니다. 자세한 내용은 [Authentication Tokens](https://docs.signalfx.com/en/latest/admin-guide/tokens.html)를 참조하세요.
   + **영역** 조직을 호스팅하는 독립형 배포. SignalFx 사용자 인터페이스에 로그인할 때 프로파일 페이지에서 영역 이름을 찾을 수 있습니다.

## 쿼리 편집기 사용하기


쿼리 편집기는 [SignalFlow](https://dev.splunk.com/observability/docs/signalflow/) 프로그램/쿼리를 수락합니다.

레이블의 경우 Signalflow 레이블 `publish(label = 'foo')`RK 결과에 메타데이터로 적용됩니다(**"label":"foo"**).

쿼리 유형 템플릿 변수의 경우 **쿼리** 필드가 없습니다. 대신 다음 쿼리 유형 중 하나를 선택하세요.
+ Dimensions
+ Metrics
+ Tags

임시 필터가 지원되므로 차원을 사용하는 전역 필터를 허용합니다.

Grafana 주석이 지원됩니다. 주석을 생성할 때 SignalFlow 경고 또는 이벤트 쿼리를 사용합니다.

탐지기에 대한 알림을 받는 예제:

```
alerts(detector_name='Deployment').publish();
```

유형별 사용자 지정 이벤트 가져오기 예제:

```
events(eventType='simulated').publish();
```

# Wavefront 데이터 소스에 연결(Wavefront의 VMware Tanzu Observability)
Wavefront

 Wavefront(Wavefront의 VMware Tanzu Observability) 데이터 소스를 사용하면 Amazon Managed Grafana 사용자가 Wavefront에서 직접 수집하고 있는 데이터를 쿼리 및 시각화하고 다른 지표, 로그, 추적 또는 기타 데이터 소스와 함께 쉽게 시각화할 수 있습니다. 이 유연한 단일 창 보기를 사용하면 시스템 상태를 더 쉽게 추적하고 문제를 디버깅할 수 있습니다.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

## Wavefront란 무엇인가요?


 [Wavefront](https://www.wavefront.com)는 VMware에서 개발한 클라우드 모니터링 및 분석 도구입니다. Wavefront는 CollectD AWS, StatsD, JMX, Ruby의 로거 또는 기타 도구에서 시계열(지표) 데이터를 전송하는 클라우드 호스팅 서비스입니다. Wavefront를 사용하면 사용자는 해당 시리즈에서 수학 연산을 수행하고, 차트를 렌더링하여 이상을 확인하며, KPI를 추적하고, 알림을 생성할 수 있습니다.

## Wavefront 및 Grafana를 사용하여 기술 스택 최대화


 Grafana와 Wavefront는 표면적으로 비슷해 보이지만 많은 조직에서 Wavefront와 Grafana를 모두 관찰성 워크플로의 중요한 부분으로 사용합니다.

 **데이터 소스 이동 없이 시각화:** Grafana의 고유한 아키텍처는 데이터를 이동하고 중복 스토리지 및 수집 비용을 지불하는 대신 데이터가 있는 곳에서 직접 쿼리합니다.

 **다양한 소스에서 패널 구성** 사전 빌드된 대시보드와 사용자 지정 대시보드를 사용하여 다양한 데이터 소스의 데이터를 단일 창으로 가져옵니다.

 **사용자 수준에서 변환 및 계산:** 사용자는 데이터 준비 노력을 거의 들이지 않고도 데이터를 변환하고 보고 있는 데이터에서 다양한 계산을 실행할 수 있습니다.

 **패널 내에서 결합, 컴퓨팅 및 시각화:** Waveferont 및 기타 소스(예: Prometheus 및 InfluxDB)의 관련 데이터를 표시하는 혼합 데이터 소스 패널을 생성합니다.

## 설명서


### 특성

+  시계열 시각화 
+  테이블 시각화 
+  히트맵 시각화 
+  단일 통계 시각화 
+  안내식 쿼리 편집기 
+  원시 WQL 쿼리 편집기 
+  이벤트 데이터에 대한 주석 
+  템플릿 변수 
+  임시 필터 
+  알림 

### 구성


 Wavefront 데이터 소스를 구성하는 방법은 비교적 간단합니다. 구성을 완료하는 데 두 가지 필드(`API URL` 및 `Token`)만 있으면 됩니다.
+  `API URL`은 Wavefront 환경에 액세스하는 데 사용하는 URL입니다. 예시: `https://myenvironment.wavefront.com`.
+  `Token`은 사용자 계정 또는 서비스 계정에서 생성되어야 합니다.

  1.  사용자 계정 기반 토큰을 생성하려면 Wavefront 환경에 로그인하고 페이지 오른쪽 상단에 있는 톱니를 선택합니다. 그리고 사용자 이름(예: `me@grafana.com`)을 선택하고 사용자 페이지 상단에 있는 **API 액세스** 탭을 선택한 다음, 기존 키를 복사하거나 **생성**을 선택하세요.

  1. 서비스 계정 기반 토큰을 생성하려면 Wavefront 환경에 로그인하고 페이지 오른쪽 상단에 있는 톱니를 선택하고 계정 관리를 선택하세요. 왼쪽 탐색에서 **계정, 그룹 및 역할**을 선택하고 상단의 **서비스 계정** 탭을 선택한 다음, **새 계정 생성**을 선택하세요. 서비스 계정 이름을 입력하세요. 어떤 이름도 가능합니다. **토큰** 섹션에 제공된 토큰을 복사하세요.

  1. 마지막 단계는 **권한**에서 **계정, 그룹 및 역할** 확인란을 선택했는지 확인하는 것입니다.

 토큰이 있으면 `Token` 구성 필드에 토큰을 추가하면 모든 준비를 마친 것입니다\$1

 최종 구성 페이지는 다음과 비슷합니다.

### 사용법


#### 쿼리 편집기 사용하기


 Wavefront 쿼리 편집기에는 **쿼리 빌더** 및 **원시 쿼리**와 같은 두 가지 모드가 있습니다. 둘 사이를 전환하려면 쿼리 양식의 오른쪽 상단에 있는 선택기를 사용합니다.

 **쿼리 빌더** 모드에서는 네 가지 선택 사항이 제공됩니다.

1.  쿼리하려는 지표는 무엇인가요?

1.  해당 지표에 대해 어떤 집계를 수행하고 싶나요?

1.  해당 지표 쿼리의 결과를 필터링하려면 어떻게 해야 하나요?

1.  결과에 추가 함수를 적용하시겠어요?

 지표 선택기는 범주형 계층입니다. 범주를 선택한 다음, 다시 선택하여 하위 범주로 드릴합니다. 원하는 지표에 도달할 때까지 이 프로세스를 반복합니다.

 지표를 선택하면 사용 가능한 필터 및 필터 값이 자동으로 채워집니다.

 **원시 쿼리** 모드에서는 **쿼리**라는 단일 필드가 표시됩니다. 이 경우 원하는 [WQL](#wavefront-references) 쿼리를 실행할 수 있습니다.

#### 필터 사용


 Wavefront 플러그인은 각 지표에 적합한 필터를 동적으로 쿼리합니다.

 필터를 추가하려면 Wavefront 쿼리 편집기의 **필터** 레이블 옆에 있는 **\$1**를 선택하고 필터링할 필드를 선택한 다음, 필터링할 값을 선택합니다.

#### 함수 사용


 함수는 지표 응답 데이터를 집계 및 조작하고 해당 데이터에서 계산하는 추가 방법을 제공합니다. 사용 가능한 함수를 보려면 **쿼리 빌더**의 함수 레이블 옆에 있는 드롭다운 목록을 선택합니다. 선택한 함수에 따라 그룹화 기준 필드를 설정하거나 임계치를 적용하는 등의 추가 작업을 수행할 수 있습니다. 사용자는 여러 함수를 함께 연결하여 고급 계산 또는 데이터 조작을 수행할 수 있습니다.

#### 쿼리 템플릿 변수 추가


1.  대시보드에 대한 새 Wavefront 템플릿 변수를 생성하려면 대시보드 오른쪽 상단에서 설정 톱니를 선택하세요.

1.  왼쪽 패널에서 **변수**를 선택하세요.

1.  변수 페이지의 오른쪽 상단에서 **새로 만들기**를 선택하세요.

1.  생성하려는 템플릿 변수의 **이름** 및 **레이블**을 입력하세요. **이름**은 쿼리 내에서 템플릿 변수를 참조하는 데 사용할 값입니다. **레이블**은 대시보드 선택 패널에서 템플릿 변수에 대해 표시할 친숙한 이름입니다.

1.  유형 필드에 대한 **쿼리** 유형을 선택하세요(기본적으로 선택해야 함).

1.  **쿼리 옵션** 제목의 **데이터 소스** 드롭다운 목록에서 **Wavefront**를 선택하세요.

1.  **쿼리** 필드에 입력해야 하는 항목에 대한 자세한 내용은 [템플릿 변수 쿼리 구조](#template-variable-query-structure)를 참조하세요.

1.  쿼리에서 반환된 값을 필터링하려면 **정규식** 입력 필드에 정규식을 입력하세요.

1.  **정렬** 드롭다운 목록에서 정렬 유형을 선택하여 있을 수 있는 정렬 기본 설정을 적용하세요.

1.  구성을 확인한 후 **추가**를 선택하여 템플릿 변수를 추가한 다음, 왼쪽 탐색 패널에서 **대시보드 저장**을 선택하여 변경 사항을 저장하세요.

#### 템플릿 변수 쿼리 구조


 지표 목록: metrics: ts(…) 

 소스 목록: sources: ts(…) 

 소스 태그 목록: sourceTags: ts(…) 

 일치하는 소스 태그 목록: matchingSourceTags: ts(…) 

 태그 이름 목록: tagNames: ts(…) 

 태그 값 목록: tagValues(<tag>): ts(…) 

 **참고** 
+  각 쿼리 유형의 끝에 있는 s는 선택 사항입니다.
+  모든 소문자를 지원합니다. tagnames 또는 tagNames는 사용할 수 있지만 TAGNAMES는 사용할 수 없습니다.
+  주변 공백 사용: 선택 사항입니다.

   **경고** 

   `Multi-value` 및 `Include All option`는 현재 Wavefront 플러그인에서 지원되지 않습니다.

#### 템플릿 변수 사용


 [새 템플릿 변수를 추가](#wavefront-adding-a-query-template-variable-1)하는 단계를 완료한 후에는 이제 대시보드 패널 내에서 템플릿 변수를 사용하여 동적 시각화를 생성할 준비가 된 것입니다.

1.  대시보드의 오른쪽 상단에 있는 패널\$1 아이콘을 사용하여 새 대시보드 패널을 추가하세요.

1.  쿼리에 사용할 집계를 선택하세요.

1.  **필터** 레이블 옆의 \$1 아이콘을 선택하고 템플릿 변수와 일치시킬 키 유형을 선택하세요(예: 호스트 필터의 경우 `host=`).

1.  필터의 **값** 입력 필드에 생성한 템플릿 변수의 이름을 입력하세요.

1.  대시보드를 저장합니다.

 이제 템플릿 변수의 다양한 값을 순환하고 패널을 동적으로 업데이트할 수 있습니다.

#### 임시 필터 사용


 임시 필터를 사용하려면 두 개의 템플릿 변수를 생성해야 합니다. 첫 번째 항목은 지표를 선택하는 데 사용되는 헬퍼 변수로, 해당 지표 이름에 대한 임시 필터를 채울 수 있습니다. 다른 하나는 실제 임시 필터 변수입니다.

**중요**  
 필요한 헬퍼 변수의 이름은 `metriclink`여야 합니다. 사용하려는 지표 목록이 있는 사용자 지정 변수이거나 [템플릿 변수 쿼리 구조](#template-variable-query-structure)를 사용하는 쿼리 기반 변수일 수 있습니다. 단일 지표의 값만 사용하여 임시 필터 필드를 채우려는 경우 `metriclink` 템플릿 변수를 숨길 수 있습니다.

 `metriclink` 변수를 생성한 후 이제 [쿼리 템플릿 변수 추가](#wavefront-adding-a-query-template-variable-1)에 설명된 것과 동일한 단계에 따라 임시 필터를 추가할 수 있습니다. 차이는 **임시 필터**를 **유형**으로 선택하고 쿼리에 입력이 필요하지 않다는 점입니다.

#### 주석 추가


1.  대시보드에 대한 새 Wavefront 주석을 생성하려면 대시보드 오른쪽 상단에서 설정 톱니를 선택하세요.

1.  왼쪽 패널에서 **주석**을 선택하세요.

1.  주석 페이지의 오른쪽 상단에서 **새로 만들기**를 선택하세요.

1.  주석 이름을 입력하세요(이 이름은 대시보드의 토글 이름으로 사용됨).

1.  Wavefront의 **데이터 소스**를 선택하세요.

1.  기본적으로 주석에서 반환되는 알림 이벤트는 100개로 제한됩니다. 이를 변경하려면 **제한** 필드를 원하는 값으로 설정하세요.

1.  **추가**를 선택합니다.

#### 주석 사용


 주석을 켜면 이제 지정된 기간과 관련된 알림 이벤트 및 문제가 표시됩니다.

 시각화의 주석이 달린 섹션 하단에서 일시 중지하면 알림 이름을 표시하고 Wavefront의 알림에 대한 직접 링크를 제공하는 팝업 창이 표시됩니다.

#### 표시 이름 필드 사용


 이 데이터 소스는 옵션 패널의 필드 탭에 있는 표시 이름 필드를 사용하여 이름, 레이블 또는 값에 따라 범례 키를 축약하거나 변경합니다. 다른 데이터 소스에서는 사용자 지정 `alias` 기능을 사용하여 범례 키를 수정하지만, 표시 이름 함수는 이를 수행하는 보다 일관된 방법입니다.

### 참조

+  [Wavefront 쿼리 언어(WQL)](https://docs.wavefront.com/query_language_reference.html) 