

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

# Enterprise 데이터 소스에 연결
<a name="AMG-data-sources-enterprise"></a>

다음 데이터 소스는 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 데이터 소스에 연결
<a name="appdynamics-AMG-datasource"></a>

 Amazon Managed Grafana에 대한 AppDynamics 데이터 소스를 사용하면 지표 API를 사용하여 AppDynamics에서 지표를 쿼리하고 Grafana 대시보드에서 시각화할 수 있습니다.

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

## 데이터 소스 구성에 대한 참고 사항
<a name="note-on-the-datasource-config"></a>

 서버(프록시) 액세스(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`)에 새 사용자(또는 사용자가 속한 그룹)를 할당하세요.

## 템플릿 지정
<a name="appdynamics-templating"></a>

 현재 지원되는 템플릿 쿼리는 다음과 같습니다.

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>`(모든 지표 경로를 지정할 수 있음) 

## 범례 키
<a name="legend-keys"></a>

 범례 키의 기본값은 상당히 길 수 있지만 이 형식은 사용자 지정할 수 있습니다.

 `App on legend` 옵션을 선택하여 범례 키 앞에 애플리케이션 이름을 접두사로 추가할 수 있습니다. 예를 들어 `MyApp - Overall Application Performance|Average Response Time (ms)`입니다.

 범례 키를 볼 수 없는 단일 통계 또는 기타 패널에 대한 쿼리인 경우 메타데이터 표시 옵션을 선택하여 쿼리의 범례 키(별칭이라고도 함)가 무엇인지 확인하세요.

 범례 드롭다운 목록에는 `Full Path`, `Segments` 및 `Custom`의 세 가지 옵션이 있습니다 

### 범례 옵션 - 전체 경로
<a name="legend-option---full-path"></a>

 범례 키는 전체 지표 경로(예: `Overall Application Performance|Average Response Time (ms)`)입니다.

### 범례 옵션 - 세그먼트
<a name="legend-option---segments"></a>

 지표 이름은 세그먼트로 구성됩니다. 표시할 세그먼트를 선택할 수 있습니다.

 예를 들어 지표 이름을 사용하는 경우 다음을 수행하세요.

 `Errors|mywebsite|Error|Errors per Minute` 

 세그먼트 필드에 다음 `2,4`를 입력하면 `mywebsite|Errors per minute`가 반환됩니다.

 인덱싱은 1로 시작하므로 `1`에서 `Errors`를 반환합니다.

### 범례 옵션 - 사용자 지정
<a name="legend-option---custom"></a>

 지표 메타데이터에서 혼합할 수 있도록 텍스트와 다음 별칭 패턴을 결합하여 사용자 지정 범례를 생성하세요.
+  `{{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 데이터 소스에 연결
<a name="AMG-databricks-datasource"></a>

Databricks 데이터 소스를 사용하면 Amazon Managed Grafana 내에서 Databricks 데이터를 쿼리 및 시각화할 수 있습니다. 여기에는 쿼리를 포맷하고 색상 코드를 지정하는 SQL 편집기가 포함되어 있습니다.

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

## Databricks 데이터 소스 추가
<a name="AMG-databricks-add-datasource"></a>

Grafana 콘솔에 Databricks 데이터 소스를 추가하려면 다음 단계를 수행합니다.

**Databricks 데이터 소스를 추가하는 방법**

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

1. 사이드 메뉴의 **대시보드** 링크에서 **데이터 소스**를 선택하세요.
**참고**  
**데이터 소스** 링크가 표시되지 않으면 Grafana에 대한 `Admin` 역할이 없는 것입니다.

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

1. **유형** 드롭다운 목록에서 **Databricks**를 선택하세요.
**참고**  
Databricks 옵션이 표시되지 않지만 필요한 경우 Grafana Enterprise로 업그레이드해야 합니다.

1. 데이터를 연결하고 편집할 옵션을 선택하세요.

## Databricks 데이터 소스 사용 시 참고 사항
<a name="AMG-databricks-notes"></a>

**시계열**

시계열 시각화는 쿼리에 `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
```

# 데이터베이스 데이터 소스에 연결
<a name="AMG-datadog-datasource-plugin"></a>

 Datadog 데이터 소스를 사용하면 Amazon Managed Grafana에서 Datadog 모니터링 서비스의 지표를 시각화할 수 있습니다.

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

## 사용법
<a name="datadog-usage"></a>

### 캐싱
<a name="datadog-caching"></a>

 많은 쿼리를 만드는 대규모 대시보드의 경우 Datadog API에 의해 요금이 제한될 수 있습니다(Datadog API에서 허용하는 시간당 최대 API 직접 호출 수에 도달함). 캐싱 기능은 60초 동안 고유한 쿼리를 캐싱합니다. 이 간격은 구성 페이지에서 더 길거나 짧게 변경할 수 있습니다.

### 쿼리 편집기
<a name="datadog-query-editor"></a>

 간단합니다. 집계 및 지표를 선택하세요. 결과를 필터링하려면 하나 이상의 태그를 선택하세요.

 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 name="datadog-metric-arithmetic"></a>

 지표 산술을 사용하려면 *쿼리 유형*을 *산술*로 설정합니다. `#` 기호를 사용하여 원하는 지표에 연결합니다. 예를 들어 `#A * 2`는 `A` 쿼리의 결과를 두 배로 늘립니다. 두 지표 사이에서 산술은 동일한 방식으로 작동합니다. 계산에 사용하려는 결과를 쿼리에 추가한 다음, `#A / #B`와 같은 세 번째 쿼리에서 이러한 지표에 연결합니다.

### Annotations
<a name="datadog-annotations"></a>

 주석은 그래프 위에 오버레이된 이벤트입니다. 이벤트의 예로, 배포 또는 중단이 있습니다. 이 데이터 소스를 사용하면 Datadog에서 이벤트를 가져와 Amazon Managed Grafana의 그래프에 오버레이할 수 있습니다. 주석 이벤트는 소스, 태그 또는 우선순위별로 필터링할 수 있습니다.

### 템플릿 지정
<a name="datadog-templating"></a>

 템플릿 변수의 값을 가져오는 몇 가지 옵션, 즉 지표와 태그가 있습니다. 사용 가능한 지표 목록을 가져오려면 *쿼리* 필드에 `*`를 지정합니다.

 모든 태그를 반환하려면 `tag` 또는 `scope` 값을 사용합니다.

 지정된 태그 그룹에 대한 태그를 반환하려면 다음 기본 범주 값 중 하나를 사용합니다.
+  `host` 
+  `device` 
+  `env` 
+  `region` 
+  `site` 
+  `status` 
+  `version` 

 사용자 지정 태그 그룹의 경우 태그 그룹 이름만 입력하면 됩니다. 예를 들어 사용자 지정 태그 그룹 이름이 `subscription_name`인 경우 *쿼리* 필드에 입력하세요.

 *정규식* 필드를 사용하여 결과를 필터링합니다. 태그를 사용할 때 다중 값 변수가 지원됩니다. 선택한 다중 태그 값은 쉼표로 구분된 태그 목록으로 변환됩니다.

#### 임시 필터
<a name="datadog-ad-hoc-filters"></a>

 Grafana에는 *임시 필터*라는 새로운 특수 유형의 템플릿 변수가 있습니다. 이 변수는 대시보드의 *모든* Datadog 쿼리에 적용됩니다. 이렇게 하면 빠른 필터처럼 사용할 수 있습니다. Datadog의 임시 변수는 태그에서 모든 키-값 페어(예: `region:east, region:west`)를 가져와 쿼리 태그로 사용합니다. 이 변수를 생성하려면 *임시 필터* 유형을 선택하고 Datadog 데이터 소스를 선택합니다. 이 변수에 대해 임의의 이름을 설정할 수 있습니다.

# Dynatrace 데이터 소스에 연결
<a name="dynatrace-AMG-datasource"></a>

[https://www.dynatrace.com/](https://www.dynatrace.com)에 대한 데이터 소스. 이 데이터 소스를 사용하려면 Dynatrace 계정이 있어야 합니다.

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

**알려진 제한 사항**

템플릿 변수는 여러 개를 선택할 수 없습니다. 한 개만 선택할 수 있습니다.

v2 지표 API만 지원됩니다.

## 특성
<a name="features"></a>

### 핵심 기능
<a name="core-features"></a>
+  템플릿 변수 
  +  지표 이름 
  +  단일 선택만(**다중 선택 없음**) 
  +  임시 필터 
+  Annotations 
  +  현재 지원되지 않음 
+  별칭 
  +  지표 이름 
  +  집계 
  +  표시 이름 
  +  Host 
  +  설명 
+  알림 
  +  전체 알림 지원 

### Dynatrace 특정 기능
<a name="dynatrace-specific-features"></a>

 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 권한
<a name="dynatrace-permissions"></a>

 Dynatrace에서 다음 권한이 필요합니다. - API V2(metrics.read) 권한을 사용하여 지표 읽기 - API V2(entities.read) 권한을 사용하여 엔터티 읽기 

## Dynatrace에서 API 키 가져오기
<a name="dynatrace-apikey"></a>

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` 권한을 설정합니다.

### 구성
<a name="configuration"></a>

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.  모든 구성 값을 설정한 후 **저장 및 테스트**를 선택하여 구성을 검증하고 변경 사항을 저장하세요.

### 데이터 소스 쿼리
<a name="dynatrace-usage"></a>

쿼리 편집기를 사용하여 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` - 설정된 경우 응답에 관련 이벤트를 포함합니다.

#### 템플릿 변수 사용
<a name="using-template-variables"></a>

 새 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에 대한 대시보드 가져오기
<a name="dynatrace-import"></a>

대시보드를 가져오려면 [대시보드 가져오기](dashboard-export-and-import.md#importing-a-dashboard) 섹션을 참조하세요. 가져온 대시보드는 **구성** > **데이터 소스** > Dynatrace 데이터 소스 선택 > **대시보드** 탭을 선택하여 확인할 수 있습니다(사전에 만든 사용 가능한 대시보드 표시).

# GitLab 데이터 소스에 연결
<a name="gitlab-AMG-datasource"></a>

GitLab 데이터 소스를 사용하면 상위 기여자, 일일 커밋 또는 일일 배포와 같은 세부 GitLab 통계를 추적할 수 있습니다. 프로젝트와 같은 템플릿 변수를 사용하여 대시보드에 대한 필터를 설정할 수도 있습니다. GitLab API의 데이터를 다른 소스의 데이터와 결합할 수 있습니다.

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

## 알려진 제한 사항
<a name="gitlab-known-limitations"></a>

알림 쿼리에서는 변환이 지원되지 않으며 변환이 GitLab API 원시 데이터에서 의미 있는 집계 지표를 얻는 유일한 방법이므로 이 플러그인에서는 아직 알림이 지원되지 않습니다.

## 데이터 소스 추가
<a name="gitlab-adding-the-data-source"></a>

1.  Amazon Managed Grafana 워크스페이스에서 Grafana 콘솔을 열고 로그인되었는지 확인합니다.

1.  사이드 메뉴의 **구성**(톱니 아이콘) 아래에서 **데이터 소스**를 선택하세요.

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

1.  데이터 소스 목록에서 **GitLab**을 선택하세요.

1. 다음 정보를 입력합니다.
   + **이름**에서 이 GitLab 데이터 소스의 이름을 입력합니다.
   + **URL**에 GitLab 인스턴스의 루트 URL(예: **https://gitlab.com/api/v4**)을 입력하세요.
   + **액세스 토큰 **에 GitLab 개인 액세스 토큰을 입력하세요.

## GitLab 데이터 소스 쿼리
<a name="gitlab-query"></a>

GitLab 쿼리 편집기에서 커밋, 문제 또는 릴리스와 같은 다양한 리소스 유형을 선택할 수 있습니다.

**프로젝트 필터링 및 보기**

1.  드롭다운 메뉴에서 **프로젝트**를 선택하세요.

1.  (선택 사항) 소유한 프로젝트를 기준으로 필터링하세요.

1.  드롭다운을 사용하여 **예** 또는 **아니요**를 선택하여 결과를 필터링하세요.
**참고**  
 모든 프로젝트 가져오기(**소유 = 아니요**)는 시간이 오래 걸릴 수 있습니다.

**커밋 필터링 및 보기**

1.  드롭다운 메뉴에서 **커밋**을 선택하세요.

1.  입력 필드를 사용하여 프로젝트 ID를 추가합니다.

1.  (선택 사항) 브랜치/태그를 기준으로 필터링하려면 입력 필드를 사용하여 브랜치/태그 참조를 추가하세요.

**문제 필터링 및 보기**

1.  드롭다운 메뉴에서 **문제**를 선택하세요.

1.  입력 필드를 사용하여 프로젝트 ID를 추가합니다.

1.  (선택 사항) 제목/설명을 기준으로 필터링하려면 입력 필드를 사용하여 **제목** 및 **설명**을 기반으로 문제를 검색하세요.

**릴리스 보기**

1.  드롭다운 메뉴에서 **배포**를 선택하세요.

1.  입력 필드를 사용하여 프로젝트 ID를 추가합니다.

1.  (선택 사항) 환경/상태를 기준으로 필터링하려면 입력 필드를 사용하세요. **상태** 속성은 `created`, `running`, `success`, `failed` 또는 `canceled` 값 중 하나일 수 있습니다.

**레이블 보기**

1.  드롭다운 메뉴에서 **레이블**을 선택하세요.

1.  입력 필드를 사용하여 프로젝트 ID를 추가합니다.

## 템플릿 및 변수
<a name="gitlab-templates"></a>

새 GitLab 쿼리 변수를 추가하려면 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. GitLab 데이터 소스를 데이터 소스로 사용하세요. **릴리스**, **프로젝트** 또는 **레이블**과 같은 리소스 유형을 선택하세요.

선택할 프로젝트, 레이블 등의 동적 목록을 가져오려면 쿼리 유형 변수를 생성하세요. 쿼리 유형 변수는 GitLab 쿼리 편집기를 사용하여 프로젝트, 레이블 등을 쿼리하고 반환합니다. 다음 예제에서는 쿼리를 파라미터화하기 위한 프로젝트 변수를 생성합니다.

**쿼리를 파라미터화하도록 프로젝트 변수 생성**

1.  **project**라는 **쿼리** 유형의 변수를 추가하세요.

1.  GitLab 데이터 소스를 선택하고 **대시보드 로드 시** 새로 고치세요.

1.  **프로젝트** 리소스 유형, **소유**의 경우 **예**, **표시 필드**의 경우 **이름**, **값 필드******의 경우 ID를 선택하세요.

1. **업데이트**를 선택하여 대시보드에 변수를 추가하세요.

1. 대시보드에 새 패널을 추가하고 **\$1project**를 프로젝트 ID로 사용하세요.

   이제 드롭다운에서 선택하면 해당 프로젝트에 속한 결과를 얻을 수 있습니다.

## Grafana의 변환을 사용하여 일반적인 질문에 답변
<a name="gitlab-transformations"></a>

이제 기본 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 데이터 소스에 연결
<a name="honeycomb-AMG-datasource"></a>

Honeycomb 데이터 소스를 사용하면 Amazon Managed Grafana 내에서 Honeycomb 지표와 Honeycomb 추적에 대한 링크를 쿼리하고 시각화할 수 있습니다.

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

## 알려진 제한 사항
<a name="honeycomb-known-limitations"></a>
+  이 데이터 소스는 임시 쿼리를 지원하지 않습니다.
+  API 제한 사항으로 인해 변수 편집기는 선택한 열에 대해 처음 1,000개의 고유 값만 반환할 수 있습니다.
+  API 제한 사항으로 인해 데이터 소스는 지난 7일간의 데이터만 쿼리할 수 있습니다.

## 데이터 소스 추가
<a name="honeycomb-adding-the-data-source"></a>

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 데이터 소스 쿼리
<a name="honeycomb-query"></a>

지표를 쿼리하려면 편집기 필드에 값을 입력하세요.
+  데이터세트에 선택합니다.
+  기본 쿼리는 선택한 데이터세트에 대한 `COUNT`입니다.
+  쿼리를 세분화하려면 **시각화**, **시각화**, **위치**, **제약 조건**, **그룹화 기준**, **정렬 기준** 또는 **제한**과 같은 나머지 필드의 값을 선택하세요.

## 템플릿 및 변수
<a name="honeycomb-templates"></a>

새 Honeycomb 쿼리 변수를 추가하려면 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요.

데이터세트, 열 또는 열 값을 포함하는 변수를 생성할 수 있습니다.
+  데이터세트를 선택하지 않으면 변수에 데이터세트가 포함됩니다.
+  데이터세트만 선택하면 변수에 열 이름이 포함됩니다.
+  데이터세트와 열을 모두 선택하면 변수에 열 값이 포함됩니다. 편집기의 **위치** 필드를 사용하여 열 값을 추가로 제한할 수 있습니다.

## Honeycomb UI에서 쿼리 보기
<a name="honeycomb-view"></a>

Honeycomb UI에서 대시보드 패널을 통해 생성한 쿼리를 보려면 그래프에서 원하는 점을 선택하고 **Honeycomb에서 열기**를 선택하세요.

Honeycomb UI에서 쿼리 편집기를 통해 생성한 쿼리를 보려면 **Honeycomb에서 열기**를 선택하세요.

## Honeycomb에 대한 대시보드 가져오기
<a name="honeycomb-import"></a>

대시보드를 가져오려면 [대시보드 가져오기](dashboard-export-and-import.md#importing-a-dashboard) 섹션을 참조하세요.

가져온 대시보드를 찾으려면 **구성**, **데이터 소스**를 선택하세요.

사용 가능한 사전 생성된 대시보드를 보려면 Honeycomb 데이터 소스를 선택하고 **대시보드** 탭을 선택하세요.

# Jira 데이터 소스에 연결
<a name="jira-AMG-datasource"></a>

Jira의 문제 데이터를 다른 소스의 애플리케이션 성능 데이터와 결합하여 개발 프로세스의 전체 그림을 확인하세요.

**참고**  
이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 내용은 [Enterprise 플러그인에 대한 액세스 관리](upgrade-to-enterprise-plugins.md) 단원을 참조하십시오.  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.
+ 문제 생성 또는 해결을 기반으로 주석을 생성하여 문제와 지표 간의 관계를 확인합니다.
+ 평균 해결 시간 및 문제 처리량과 같은 자세한 Jira 통계를 추적합니다.

Jira 데이터 소스를 사용하려면 Jira 프로젝트에 액세스할 수 있는 Atlassian 계정이 필요합니다.

## 알려진 제한 사항
<a name="jira-known-limitations"></a>

Jira 추가 기능의 사용자 지정 필드 유형은 지원되지 않을 수 있습니다.

## 데이터 소스 추가
<a name="jira-adding-the-data-source"></a>

1.  Amazon Managed Grafana 워크스페이스에서 Grafana 콘솔을 열고 로그인되었는지 확인합니다.

1.  사이드 메뉴의 **구성**(톱니 아이콘) 아래에서 **데이터 소스**를 선택하세요.

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

1.  데이터 소스 목록에서 **Jira**를 선택하세요.

1. 다음 정보를 입력합니다.
   + **이름 **에 이 Jira 데이터 소스의 이름을 입력하세요.
   + **URL**에 Atlassian 인스턴스의 루트 URL(예: **https://bletchleypark.atlassian.net**)을 입력하세요.
   + **사용자**에 사용자/서비스 계정의 이메일 주소를 입력하세요.
   + **API 토큰 **에서 사용자에 대해 생성된 API 토큰을 입력하세요.

## Jira 데이터 소스 쿼리
<a name="jira-query"></a>

Jira 쿼리 편집기에서 필드 및 쿼리 문제를 선택할 수 있습니다.

Jira 데이터 소스는 Jira에 버그, 사용자 스토리, 지원 티켓 또는 Jira의 기타 태스크를 나타낼 수 있는 문제를 쿼리합니다.

**문제 필터링 및 보기**

1.  **필드**를 선택하고 드롭다운을 선택한 다음, 미리 입력을 사용하여 사용자 지정 필드를 포함해 Jira 인스턴스의 모든 필드 중에서 선택하세요. 시도할 일부 필드: 
   + **요약** - 문제의 이름.
   + **에픽 이름** - 문제가 속한 에픽.
   + **스토리 포인트 예측** - 팀이 문제에 대해 예측한 스토리 포인트 수.

1.  문제를 필터링하거나 정렬합니다. 이렇게 하려면 유효한 JQL 표현식을 입력하여 Atlassian 쿼리 언어 JQL을 사용해 **프로젝트**, **담당자** 또는 **스프린트**와 같은 필드를 기준으로 문제를 필터링하거나 정렬합니다.

여기에서 데이터를 테이블에 표시하거나 Grafana 변환을 사용하여 해당 문제 데이터를 조작하거나 계산을 실행하거나 데이터를 시계열 그래프로 변환할 수 있습니다. 자세한 내용은 [변환 적용](panel-transformations.md#apply-a-transformation) 단원을 참조하십시오.

## 시계열 쿼리
<a name="jira-timeseries-query"></a>

시계열 데이터를 표시하려면 숫자 필드와 함께 **날짜** 필드를 선택한 다음, 그래프 시각화로 전환하세요. 예: **스프린트 시작 날짜**, **스토리 포인트 예측**.

이전 예제는 그 자체로 유용하지 않습니다. 숫자 필드는 변환에서 계산될 수 있으며, 변환에서 계산되었을 가능성도 큽니다. **그룹화 기준** 변환을 사용하면 **스프린트 시작 날짜**를 기준으로 그룹화하고 **스토리 포인트 예측**을 요약하여 스프린트당 시간 경과에 따른 스토리 포인트 시각화가 가능합니다. 변환에 관한 자세한 내용은 [변환 적용](panel-transformations.md#apply-a-transformation) 섹션을 참조하세요.

## 템플릿 및 변수
<a name="jira-templates"></a>

새 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의 변환을 사용하여 일반적인 질문에 답변
<a name="jira-macros"></a>

매크로는 대시보드 기간을 참조하는 변수이므로, 대시보드 기간의 범위 내에서만 문제를 필터링할 수 있습니다. 2개의 매크로가 있습니다.
+ **\$1\$1\$1timeFrom**
+ **\$1\$1\$1timeTo.**

다음 예제 JQL 쿼리는 대시보드 기간 내에 생성된 문제를 필터링합니다. `createdDate >= $__timeFrom AND createdDate <= $__timeTo` 

## 데이터 소스 최대한 활용
<a name="jira-getmost"></a>

Grafana의 변환 및 기타 기본 제공 기능을 사용하면 Jira 데이터를 보고 의미를 파악하는 데 도움이 될 수 있습니다.

### 변환을 사용하여 JQL 보강
<a name="gitlab-transformations-JQL"></a>

Grafana에는 선택할 수 있는 많은 변환이 있지만, 다음에서는 강력한 보강 기능을 제공하여 JQL에서 SQL의 기능/성능을 지원합니다.

**그룹화 기준** 이 변환은 표준 Jira JQL 구문인 Grouping에 포함되지 않는 주요 기능을 제공합니다. **그룹화 기준** 변환을 사용하면 스프린트 또는 기타 문제 필드를 기준으로 그룹화하고 그룹별로 집계하여 스프린트에서 완료된 실제 항목 및 스토리 포인트 예측과 속도 등의 지표를 얻을 수 있습니다.

**외부 조인** SQL 조인과 마찬가지로 공통 필드별로 2개 이상의 쿼리를 조인할 수 있습니다. 이렇게 하면 쿼리의 데이터세트를 결합하고 다른 변환을 사용하여 여러 쿼리/데이터세트의 값을 계산할 수 있습니다.

**계산에서 필드 추가** SQL 표현식과 마찬가지로 이 변환을 통해 다른 필드의 계산을 기반으로 데이터세트에 새 필드를 추가할 수 있습니다. 계산에 사용되는 필드는 단일 쿼리 또는 함께 조인한 쿼리일 수 있습니다. 계산을 함께 연결하고 계산된 필드에서 계산을 수행할 수도 있습니다.

### Grafana의 변환을 사용하여 일반적인 질문에 답변
<a name="gitlab-transformations-common"></a>

변환을 사용하여 데이터세트를 시각화, 집계, 그룹화 및 조인할 수 있으며, 다른 많은 유형의 변환을 사용하여 간단한 결과를 복잡한 질문에 대한 답변으로 변환할 수 있습니다.

**스프린트당 벨로시티를 어떻게 표시하나요?**

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 데이터 소스에 연결
<a name="AMG-mongodb-datasource"></a>

 MongoDB 데이터 소스를 사용하면 Amazon Managed Grafana에서 MongoDB의 데이터를 시각화할 수 있습니다.

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

## 사용법
<a name="mongo-usage"></a>

### 쿼리 편집기
<a name="mongo-query-editor"></a>

 쿼리 편집기에서는 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라는 추가 함수가 표시됩니다.

#### 쿼리 실행
<a name="mongo-running-the-query"></a>

 **Cmd \$1 S**를 눌러 쿼리를 실행합니다.

### 시계열
<a name="mongo-time-series"></a>

 시계열 데이터를 시각화할 때 플러그인은 시간으로 사용할 필드를 알아야 합니다. 이름 별칭이 "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})
```

### 진단
<a name="mongo-diagnostics"></a>

 [진단 명령](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
```

### 매크로
<a name="mongo-macros"></a>

 쿼리에서 대시보드 시간 범위를 참조할 수 있습니다.
+ ` $__timeFrom ` - 대시보드 시작 시간을 참조하는 매크로
+ ` $__timeTo ` - 대시보드 종료 시간을 참조하는 매크로

```
          $__timeTo -  ``` sample_mflix.movies.find({released: {$gt:
          "$__timeFrom"}}).sort({year: 1})
```

#### 템플릿 변수
<a name="mongo-variables"></a>

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"를 별도의 템플릿 변수로 참조할 수 있습니다.

##### 임시 필터 사용
<a name="mongo-adhoc"></a>

모든 이름의 표준 '임시 필터' 유형 변수 외에도 두 번째 헬퍼 변수를 생성해야 합니다. `mongodb\$1adhoc\$1query` 이름 및 쿼리 편집기와 호환되는 값을 포함하는 '상수' 유형이어야 합니다. 쿼리 결과는 선택 가능한 필터를 채우는 데 사용됩니다. 이 변수는 더 이상 용도가 없으므로 보기에서 숨기도록 선택할 수 있습니다.

```
          sample_mflix.movies.aggregate([
          {"$group": { "_id": "$year"}},
          {"$project": { "year": "$_id","_id":
          0 }} ] )
```

# New Relic 데이터 소스에 연결
<a name="new-relic-data-source"></a>

 이 섹션에서는 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) 단원을 참조하십시오.

## 특성
<a name="newrelic-features"></a>
+  템플릿 변수 
  +  지표 이름 
  +  지표 값 
+  Annotations 
+  별칭 
  +  지표 이름 
  +  지표 값 
+  임시 필터 
  +  현재 지원되지 않음 
+  알림 

## 구성
<a name="newrelic-configuration"></a>

 데이터 소스를 추가하고 [관리자 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)의 필드를 작성합니다.

## 사용법
<a name="newrelic-usage"></a>

### 서비스 유형
<a name="newrelic-service-types"></a>
+  **지표** - 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를 쿼리합니다.

### 별칭
<a name="newrelic-aliases"></a>

 일반 텍스트와 다음 변수를 결합하여 사용자 지정 출력을 생성할 수 있습니다.


|  변수  |  설명  |  예시 값  | 
| --- | --- | --- | 
|  \$1\$1\$1nr\$1metric  |  지표 이름  |  CPU/사용자 시간  | 
|  \$1\$1\$1nr\$1metric\$1value  |  지표 값  |  average\$1value  | 

예제:

```
    <para>
      Server: $__nr_server Metric: $__nr_metric
    </para>
    <programlisting>
```

### 템플릿 및 변수
<a name="newrelic-templates-and-variables"></a>

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 매크로
<a name="nrql-macros"></a>

 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>
```

 매크로 및 템플릿 변수를 사용하는 방법에 대한 추가 힌트는 편집자의 도움말 섹션을 참조하세요.

### 알림 이벤트
<a name="newrelic-alert-events"></a>

 New Relic 데이터 소스를 선택하고 추가 필터를 설정합니다. 필터가 설정되지 않으면 모든 이벤트가 반환됩니다.

 *엔터티 ID*를 기준으로 이벤트를 필터링하려는 경우 ID 대신 엔터티 이름을 선택할 수 있으므로 템플릿 변수를 사용합니다. 예를 들어 특정 애플리케이션에 대한 이벤트를 필터링하려면 앱 목록을 `_$app_` 검색하고 이를 *엔터니 ID* 필터로 사용하는 변수를 생성합니다.

### 배포 이벤트
<a name="newrelic-deployment-events"></a>

 *애플리케이션 ID*는 필수 필드입니다.

# Oracle 데이터베이스 데이터 소스에 연결
<a name="oracle-datasource-AMG"></a>

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

## 데이터 소스 추가
<a name="datasource-configuration"></a>

 Grafana의 왼쪽 패널에서 **데이터 소스**를 선택하세요.

 데이터 소스 추가를 선택하세요.

 **oracle**을 입력하여 데이터 소스를 찾으세요.

 Oracle 서버 세부 정보를 입력하세요.

 포트 번호와 함께 호스트 이름 또는 IP 주소와 연결할 사용자 이름 및 암호를 입력하세요.

 tnsnames 옵션 토글을 사용하면 기본 인증과 함께 tnsnames.ora 구성 파일에 있는 유효한 항목을 사용할 수 있습니다.

 이전 예제와 비슷하지만 인증에 Kerberos를 사용합니다. kerberos를 사용하도록 OS 또는 Docker 컨테이너를 구성하는 방법에 대한 자세한 내용은 kerberos별 설정 안내서를 참조하세요.

 선택적으로 Oracle 서버에 연결하고 시간대 인식 매크로에서 사용할 시간대를 변경하세요. 기본 설정은 UTC입니다.

 데이터 소스를 저장하고 테스트하세요. '데이터 연결 정상'이라는 녹색 메시지가 표시됩니다.

## 사용법
<a name="usage-4"></a>

### 매크로
<a name="macros-1"></a>

 구문을 단순화하고 날짜 범위 필터와 같은 동적 부분을 허용하기 위해 쿼리에 매크로가 포함될 수 있습니다. 열 이름은 큰따옴표`"`()로 묶어야 합니다.


|  매크로 예제  |  설명  | 
| --- | --- | 
|  \$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 문자열이 표시됩니다.

### 테이블 쿼리
<a name="table-queries"></a>

 **형식** 쿼리 옵션이 **테이블**로 설정된 경우 기본적으로 모든 유형의 SQL 쿼리를 수행할 수 있습니다. 테이블 패널에는 쿼리에서 반환하는 열 및 행의 결과가 자동으로 표시됩니다. 일반 `as` SQL 열 선택 구문을 사용하여 테이블 패널 열의 이름을 제어할 수 있습니다.

### 시계열 쿼리
<a name="time-series-queries"></a>

 예를 들어 그래프 패널에서 사용할 **형식**을 **시계열**로 설정한 경우 쿼리는 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 사용
<a name="more-queries---using-oracle-fake-data-gen"></a>

```
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
```

### 템플릿 지정
<a name="templating-3"></a>

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

#### 쿼리 변수
<a name="query-variable-1"></a>

 `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')
```

#### 쿼리에서 변수 사용
<a name="using-variables-in-queries-1"></a>

 템플릿 변수 값은 템플릿 변수가 `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 데이터 소스에 연결
<a name="salesforce-AMG-datasource"></a>

**참고**  
이 데이터 소스는 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)이 있어야 합니다.

## 알려진 제한 사항
<a name="salesforce-known-limitations"></a>
+  임시 필터는 아직 지원되지 않습니다.
+  SOQL 쿼리와 SOQL을 통해 액세스할 수 있는 데이터만 현재 지원됩니다. SOSL 및 SAQL 쿼리 형식은 아직 지원되지 않습니다.

## 필수 설정
<a name="salesforce-settings"></a>

다음 설정이 필요합니다.

**참고**  
플러그인은 현재 OAuth 2.0 사용자 이름-암호 흐름을 사용합니다. 연결된 앱에서 필요한 콜백 URL은 사용되지 않습니다. 따라서 유효한 URL로 설정할 수 있습니다.


|  이름  |  설명  | 
| --- | --- | 
|  Enable OAuth settings  |  OAuth를 활성화하려면 이를 선택해야 합니다. | 
|  Callback URL  |  이 플러그인에서는 사용되지 않으므로 유효한 URL을 지정할 수 있습니다. | 
|  Selected OAuth Scopes (minimum requirements)  | 데이터(api)에 액세스하고 데이터를 관리합니다. | 
|  Require Secret for Refresh Token Flow  |  이를 활성화하거나 비활성화할 수 잇습니다. | 

## 데이터 소스 추가
<a name="salesforce-adding-the-data-source"></a>

1.  Amazon Managed Grafana 워크스페이스에서 Grafana 콘솔을 열고 로그인되었는지 확인합니다.

1.  사이드 메뉴의 **구성**(톱니 아이콘) 아래에서 **데이터 소스**를 선택하세요.

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

1.  데이터 소스 목록에서 **Salesforce**를 선택하세요.

1. 다음 정보를 입력합니다.
   + **사용자 이름**에 Salesforce를 연결하고 쿼리하는 데 사용할 Salesforce 계정의 사용자 이름을 입력하세요.
   + **암호**에 해당 사용자 암호를 입력합니다.
   + **보안 토큰 **에 해당 사용자의 보안 토큰을 입력합니다.
   + **소비자 키**에 소비자 키를 입력하여 Salesforce에 연결하세요. Salesforce 연결된 앱에서 이 정보를 얻을 수 있습니다.
   + **소비자 보안 암호**에 Salesforce에 연결하는 데 사용할 소비자 보안 암호를 입력하세요. Salesforce 연결된 앱에서 이 정보를 얻을 수 있습니다.
   + **샌드박스 사용**에서 Salesforce 샌드박스를 사용하려면 이 옵션을 선택하세요.

## Salesforce 데이터 소스 쿼리
<a name="salesforce-query"></a>

쿼리 편집기는 쿼리 빌더 및 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 빌더)
<a name="salesforce-query-builder"></a>

쿼리 빌더는 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 편집기
<a name="salesforce-SOQL-editor"></a>

원시 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
```

## 템플릿 및 변수
<a name="salesforce-templates"></a>

새 Salesforce 쿼리 변수를 추가하려면 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. Salesforce 데이터 소스를 데이터 소스로 사용합니다. 여기에서 모든 SOQL 쿼리를 사용할 수 있습니다.

사용자 ID 및 사용자 이름과 같은 이름/값 페어를 사용하려면 SOQL 쿼리에서 두 필드를 반환합니다. 첫 번째 필드가 ID로 사용됩니다. 쿼리 편집기 SOQL에서 키(ID 등)를 기준으로 필터링하려는 경우 이 작업을 수행합니다.

변수 구문을 사용하여 SOQL 쿼리에서 변수를 사용합니다. 자세한 내용은 [변수 구문](templates-and-variables.md#variable-syntax) 단원을 참조하십시오.

# SAP HANA 데이터 소스에 연결
<a name="saphana-AMG-datasource"></a>

[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) 단원을 참조하십시오.

## 특성
<a name="saphana-features"></a>
+ **쿼리 편집기** - 플러그인에는 시계열 또는 테이블 데이터를 시각화하고 기본 Grafana 매크로를 자동으로 완료할 수 있는 구문 강조 표시 기능이 있는 기본 제공 SQL 쿼리 편집기가 함께 제공됩니다.
+ **데이터 소스 권한** - Grafana에서 SAP HANA 데이터를 보거나 쿼리할 수 있는 사용자를 제어합니다.
+ **주석** - 모든 Grafana 그래프에서 SAP HANA 이벤트 또는 데이터를 오버레이하여 이벤트를 다른 그래프 데이터와 연결합니다.
+ **알림** - SAP HANA에서 알림 기반 지표 저장소를 설정합니다.
+ **쿼리용 변수** - SAP HANA 데이터를 기반으로 하는 템플릿 변수를 Grafana에서 생성하고 SAP HANA 쿼리에 변수를 포함하여 대시보드를 대화형으로 만듭니다.

## 데이터 소스 추가
<a name="saphana-adding-the-data-source"></a>

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에 대한 액세스를 제한합니다. 권한 페이지에서 관리자는 권한을 활성화하고 특정 사용자 및 팀으로 쿼리 권한을 제한할 수 있습니다.

## 쿼리 편집기
<a name="saphana-queryeditor"></a>

SAP HANA Grafana 플러그인에는 모든 HANA 쿼리를 입력할 수 있는 SQL 쿼리 편집기가 함께 제공됩니다. 쿼리가 시간 데이터를 반환하는 경우 그래프 패널에서 데이터를 시각화하기 위해 시계열 형식을 지정할 수 있습니다. 쿼리 편집기는 SQL 쿼리의 지원되는 Grafana 매크로 및 구문 강조 표시에 대한 자동 완성을 제공합니다.

## Annotations
<a name="saphana-annotations"></a>

SAP HANA 쿼리를 Grafana 주석의 소스로 사용할 수 있습니다. 주석 쿼리에서는 하나 이상의 시간 열과 하나의 텍스트 열을 반환해야 합니다. 주석에 대한 자세한 내용은 [Annotations](dashboard-annotations.md) 섹션을 참조하세요.

**SAP HANA에서 주석을 생성하는 방법**

1.  **대시보드 설정** 톱니 아이콘을 선택하세요.

1.  왼쪽 메뉴에서 **주석**, **새로 만들기**를 선택하세요.

1.  **데이터 소스** 드롭다운 메뉴에서 SAP HANA 데이터 소스 인스턴스를 선택하세요.

1.  **쿼리** 필드에 하나 이상의 시간 필드와 하나의 텍스트 필드를 반환하는 SAP HANA 쿼리를 입력하세요.

1.  **형식 지정** 드롭다운 메뉴에서 **시계열**을 선택하세요.

1.  각 주석에 대해 **시작** 필드를 구성하세요.

## 템플릿 및 변수
<a name="saphana-templates"></a>

새 SAP HANA 쿼리 변수를 추가하려면 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. SAP HANA 데이터 소스를 데이터 소스로 사용하세요.

다음 쿼리 예제에서는 `users` 테이블의 개별 `username` 목록을 반환합니다.

```
select distinct("username") from "users"
```

**참고**  
변수 쿼리에서 하나의 열만 선택해야 합니다. 쿼리가 두 개의 열을 반환하면 첫 번째 열이 표시 값으로 사용되고 두 번째 열이 변수의 실제 값으로 사용됩니다. 쿼리가 둘 이상의 열을 반환하면 거부됩니다.

### 템플릿 및 변수
<a name="saphana-Grafana-variables"></a>

쿼리에서 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)
```

### 매크로
<a name="saphana-macros"></a>
+ `$__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
```

### 알림
<a name="saphana-alerting"></a>

**Grafana에서 SAP HANA 알림을 설정하는 방법**

1. 대시보드에서 그래프 패널을 생성하세요.

1. 시계열 형식으로 SAP HANA 쿼리를 생성하세요.

1. **알림** 탭을 선택하고 알림 기준을 지정하세요.

1. **규칙 테스트**를 선택하여 알림 쿼리를 테스트하세요.

1. 알림 수신자, 메시지 및 오류 처리를 지정하세요.

1. 대시보드를 저장합니다.

#### 시계열 외 데이터에 대한 알림
<a name="saphana-alerting-nontimeseries"></a>

시계열 외 데이터를 알리려면 `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 데이터 소스에 연결
<a name="grafana-enterprise-servicenow-datasource"></a>

ServiceNow 인스턴스에 연결하는 데 사용되는 ServiceNow 데이터 소스입니다.

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

## 특성
<a name="features-1"></a>
+  쿼리 
  +  통계 API 쿼리 
  +  테이블 API 쿼리 
    +  인시던트, 변경 사항 및 기타 테이블 
+  알림 
+  주석(베타 기능) 
+  템플릿 변수 

## 구성
<a name="configuration-2"></a>

 Grafana의 왼쪽 패널에서 데이터 소스를 선택하세요.

 데이터 소스 추가를 선택하세요.

 **servicenow**를 입력하여 데이터 소스 플러그인을 찾습니다.

 ServiceNow URL을 입력합니다.

 **저장 및 테스트**를 선택합니다. 'ServiceNow 연결 확인'이라는 녹색 메시지가 표시됩니다.

### 대시보드 예제
<a name="example-dashboards"></a>

 사전 생성된 대시보드는 플러그인에 포함되며 대시보드 탭 아래에서 데이터 소스 구성 페이지를 통해 가져올 수 있습니다.

## 사용법
<a name="usage-2"></a>

 쿼리 편집기에서 데이터를 반환하는 두 가지 방법이 있습니다.
+  TableAPI 
+  AggregateAPI 

 사용자는 현재 다음과 같이 사전 정의된 테이블 쿼리 중에서 선택할 수 있습니다.
+  변경 사항 
+  인시던트 

 또는 `v1.4.0`부터 **기타(사용자 지정 테이블)** 옵션을 사용하는 API 기반 테이블 및 필드 목록. 이 옵션을 사용하면 ServiceNow 데이터 소스를 설정하는 데 사용되는 사용자가 사용할 수 있는 테이블에 있는 데이터를 쿼리할 수 있습니다.

 **사용자 지정 테이블** 옵션은 사전 정의된 테이블 목록과 동일한 모든 기능을 지원해야 합니다.

### TableAPI 쿼리
<a name="tableapi-queries"></a>

 TableAPI는 테이블 패널에 표시하기에 적합한 데이터를 반환합니다. 이를 통해 정렬된 필드 선택을 통해 필터링 추가 옵션을 표시할 수 있습니다. 쿼리 편집기에서는 쿼리에서 반환되는 행 수를 제한하는 필드도 제공합니다.

 이전 쿼리의 결과를 보여주는 예제 테이블 패널.

#### 표시
<a name="show"></a>

 *표시* 행에서는 표시할 필드의 선택기를 제공합니다. 여러 필드를 지정할 수도 있습니다. 필드는 지정된 정확한 순서로 반환됩니다.

#### 값 표시
<a name="display-values"></a>

 *값 표시* 플래그를 사용하면 쿼리에서 숫자 값 대신 값을 표시하거나 인간 친화적인 값을 반환합니다.

 예를 들어 이 플래그가 없는 `1`의 심각도는 `1`만 표시합니다. 플래그가 활성화된 경우 표시되는 값은 `1 - High`입니다.

 [ServiceNow API 설명서](https://developer.servicenow.com/dev.do#!/reference/api/orlando/rest/c_TableAPI)에 따르면 성능에 부정적인 영향을 미칠 수 있습니다.

**참고**  
 [...] 표시 값을 지정하면 데이터베이스에서 직접 읽지 않고 다른 필드 및 레코드 참조를 포함할 수 있으므로 성능 문제가 발생할 수 있습니다.

#### 필터(일반)
<a name="filters-general"></a>

 *필터* 행에서는 여러 필드 및 값 기준을 기반으로 표시된 행을 좁힐 수 있는 기능을 제공합니다.

 모든 필터는 *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에서 필드가 자동으로 채워집니다.

##### 날짜 필터
<a name="date-filters"></a>


|  시간 필드  |  연산자  |  값  | 
| --- | --- | --- | 
|  열린 시점  |  해당 시점 또는 이전 오늘 오늘 아님 해당 시점 이전 또는 이전 해당 시점 이후 또는 이후  |  timestamp javascript:gs.daysAgo(30)  | 
|  활동 기한  |   |   | 
|  종료 시점  |   |   | 
|  기한  |   |   | 
|  예상 시작  |   |   | 
|  다시 열린 시간  |   |   | 
|  해결된 시점  |   |   | 
|  작업 종료  |   |   | 
|  작업 시작  |   |   | 
|  시간 무시  |   |   | 

 추가 날짜 값은 다음을 참조하세요. https://developer.servicenow.com/app.do\$1\$1/api\$1doc?v=newyork&id=r\$1SGSYS-dateGenerate\$1S\$1S 

##### 연산자(일반, 문자열 기반)
<a name="operators-generalstring-based"></a>
+  Starts With(다음으로 시작) 
+  Ends With 
+  좋아요 
+  싫어요 
+  같음 
+  같지 않음 
+  Is Empty 

##### 연산자(시간 기반)
<a name="operators-time-based"></a>
+  오늘 
+  오늘 아님 
+  Before 
+  해당 시점 또는 이전 
+  After 
+  해당 시점 또는 이후 

##### 값
<a name="values"></a>

 값 선택은 선택한 필터 유형에 따라 다릅니다.
+  부울 필터에는 True/False 옵션이 있음 
+  텍스트 필터를 사용하면 값을 입력할 수 있음 
+  에스컬레이션, 우선순위에는 고정된 숫자 값 세트가 있음 

#### 정렬 기준
<a name="sort-by"></a>

 *정렬 기준* 행에서는 여러 필드 및 값 기준을 기반으로 표시된 행을 좁힐 수 있는 기능을 제공합니다.

 모든 필터는 *AND* 연산으로 결합됩니다. 추가 연산자에 대한 지원이 추가됩니다.

#### Limit
<a name="limit"></a>

 너무 많은 데이터를 반환하지 않도록 행 제한을 지정할 수 있습니다. 기본값은 25입니다.

#### 시간 필드
<a name="time-field"></a>

 `Time Field`는 쿼리된 데이터를 시계열로 변환합니다. 시계열로 처리되는 데이터는 대시보드/패널의 시간 범위에 속하지 않는 선택한 '시간 필드'의 값이 표시되지 않음을 의미합니다.

 사용되는 기본 시간 필드는 '열린 시점'이지만, 시간 값을 포함하는 사용 가능한 필드로 변경할 수 있습니다.

 결과에서 '지금까지'를 허용하고 필터가 표시되는 데이터를 제어할 수 있도록 특수 값 '시간 무시'가 제공됩니다.

### AggregateAPI 쿼리(통계)
<a name="aggregateapi-queries-stats"></a>

 AggregateAPI는 항상 평균, 최소, 최대, 합계와 같은 집계와 함께 지표를 반환합니다. 쿼리를 좁히는 데도 필터링을 사용할 수 있습니다.

#### 표시
<a name="show-1"></a>

 *표시* 행에서는 표시할 지표의 선택기를 제공합니다. 여러 지표를 지정할 수도 있습니다.

#### 필터(일반)
<a name="filters-general-1"></a>

 집계 *필터*는 테이블 옵션과 마찬가지로 필드 및 값 기준을 기반으로 표시된 지표를 좁힐 수 있는 기능을 제공합니다.

 모든 필터는 *AND* 연산으로 결합됩니다. 추가 연산자에 대한 지원이 추가됩니다.

 통계 필터 옵션은 TableAPI와 동일합니다.

#### 집계
<a name="aggregation"></a>

 지표 집계에는 다음과 같은 네 가지 유형과 '개수'가 있습니다.
+  평균 
+  최소 
+  최대 
+  Sum 
+  개수 - 쿼리에서 반환된 지표의 '숫자'를 반환합니다.

##### 그룹화 기준
<a name="group-by"></a>

 이 선택기는 지표를 더 적은 집계로 분할하는 기능을 제공합니다. '우선순위'를 기준으로 그룹화하면 우선순위의 '태그'가 지정되고 고유 값이 구분된 지표가 반환됩니다.

### 템플릿 지정
<a name="templating-2"></a>

 쿼리에서 이름을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

 쿼리 변수를 추가하고 템플릿 값을 사용하여 참조하는 방법은 **쿼리 변수** 섹션의 예제를 참조하세요.

#### 쿼리 변수
<a name="query-variable"></a>

 `Query` 유형의 템플릿 변수를 추가하는 경우 드롭다운 선택 상자로 표시되는 범주 이름, 키 이름 또는 키 값과 같은 항목을 반환할 수 있는 쿼리를 작성할 수 있습니다.

 예를 들어 템플릿 지정 변수 **쿼리 설정에서 이와 같은 쿼리를 지정하여 `categories`의 모든 값을 포함하는 변수를 가질 수 있습니다.

 **쿼리** 설정을 선택하면 **필터** 섹션이 표시되어 **유형** 및 **필드**를 선택할 수 있습니다. 현재 **유형**은 인시던트 및 변경 사항으로 제한됩니다. 유형을 선택하면 해당 유형에 적용되는 필드 목록이 제공됩니다. **유형** 및 **필드**를 선택하면 해당 유형/필드에 사용할 수 있는 옵션을 보여주는 값 미리 보기가 하단에 표시됩니다. 이러한 값은 대시보드의 드롭다운 목록에 표시되며, 이 목록은 템플릿 지정과 함께 대시보드 패널의 데이터를 필터링하는 데 사용할 수 있습니다.

 예를 들어 이름이 *category*인 변수를 추가하고 유형 = 인시던트 및 필드 = 카테고리를 선택하면 범주에 대한 옵션 목록이 표시됩니다. 그런 다음, 패널에 필터를 추가하고 카테고리 같음 \$1\$1category\$1 항목을 선택하면 대시보드 드롭다운 목록에서 선택한 해당 카테고리에 대한 데이터만 패널 데이터에 표시됩니다.

 **카테고리별 인시던트** 대시보드를 가져와 예제를 확인합니다.

#### 쿼리에서 변수 사용
<a name="using-variables-in-queries"></a>

 두 가지 구문이 있습니다.

 `$<varname>`: 템플릿 변수 이름이 `hostname`인 예제: 

 `[[varname]]`: 템플릿 변수 이름이 `hostname`인 예제: 

## 알림
<a name="servicenow-alerting"></a>

 표준 Grafana 알림이 지원됩니다. 그래프 패널에 정의된 모든 쿼리를 사용하여 알림을 생성할 수 있습니다.

 다음은 예제 쿼리 및 알림입니다. 이 쿼리는 모든 미해결의 중요한 높은 우선순위 인시던트에 대한 그래프를 반환합니다.

 이 알림은 미해결의 중요한 높은 우선순위의 인시던트가 5개를 초과할 때 시작됩니다.

 알림 규칙을 테스트하면 알림 규칙의 출력이 표시되고 상태 기록을 선택하면 알림이 정상에서 보류 중을 거쳐 알림 전달 중으로 표시됩니다.

 그래프 보기에 세로선이 표시되고 알림이 보류 중인 동안에는 상단의 하트 아이콘이 주황색으로 바뀝니다.

 알림 기준이 충족되면 규칙이 빨간색으로 전환됩니다.

 그래프 보기에 빨간색 세로선이 나타나고 상단의 하트 아이콘이 빨간색으로 바뀝니다.

### 알림을 위한 인시던트 작성
<a name="writing-incidents-for-alerts"></a>

 **베타 기능** 
+  ServiceNow 데이터 소스에 대한 알림 채널을 구성합니다.

 그러면 구성된 사용자를 사용하여 이 데이터 소스에 대한 ServiceNow 인스턴스에서 인시던트를 생성하는 [Grafana 알림 채널](https://grafana.com/docs/grafana/latest/alerting/notifications/)이 구성됩니다.

 이 작업을 수행하려면 ServiceNow 데이터 소스 사용자에게 인시던트를 작성할 수 있는 권한이 있어야 합니다.

## Annotations
<a name="annotations-1"></a>

 Grafana 주석은 이 데이터 소스의 `v1.4.0`부터 **베타 기능**으로 제공됩니다. 주석을 사용하면 그래프에 이벤트를 오버레이할 수 있습니다.

 주석 쿼리는 몇 가지 사소한 차이는 있지만 표준 쿼리 편집기와 동일한 옵션을 지원합니다.
+  '표시' 열 하나만 선택할 수 있습니다. 이는 향후 개선에서 수정될 가능성이 큽니다.
+  시간 필드는 필수입니다.

## FAQ
<a name="faq-1"></a>

### ITSM 역할 플러그인이 없는 경우 어떻게 해야 하나요?
<a name="what-if-we-dont-have-the-itsm-roles-plugin"></a>

 **다음 작업을 수행하려면 관리자 액세스가 필요함** 

 옵션 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 데이터 소스에 연결
<a name="snowflake-datasource-for-AMG"></a>

 Snowflake Enterprise 데이터 소스를 사용하면 Grafana의 다른 모든 데이터 소스와 함께 Snowflake 데이터를 시각화하고 컨텍스트의 로그 및 지표 데이터를 시각화할 수 있습니다. 이 데이터 소스에는 강력한 미리 입력 쿼리 편집기가 포함되어 있으며, 복잡한 주석을 지원하고, 알림 임계치를 설정하며, 액세스 및 권한을 제어하는 등의 작업을 지원합니다.

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

## 개요
<a name="snowflake-overview"></a>

### Snowflake란 무엇인가요?
<a name="what-is-snowflake"></a>

 Snowflake는 데이터 웨어하우징, 데이터 레이크, 데이터 엔지니어링, 데이터 과학, 데이터 애플리케이션 개발 및 데이터 공유를 위한 솔루션을 제공하는 클라우드 기반 데이터 스토리지 및 분석 서비스('서비스형 데이터 웨어하우스)를 제공합니다. 지난 몇 년 동안 Snowflake는 클라우드 기반 하드웨어 및 소프트웨어를 사용하여 데이터를 저렴하게 저장하고 분석할 수 있는 능력으로 엄청난 인기를 얻었습니다. 최근에는 최대의 소프트웨어 IPO를 기록하며 정점을 이루었습니다. 오늘날 많은 기업이 Snowflake를 기본 데이터베이스로 사용하여 트랜잭션 수, 활성 사용자 세션, 시계열 및 지표 데이터와도 같은 애플리케이션 및 비즈니스 데이터를 저장합니다.

### Snowflake 및 Amazon Managed Grafana 최대한 활용
<a name="making-the-most-of-snowflake-and-AMG"></a>

 **Snowflake 데이터를 이동하지 않고 시각화**: Grafana의 고유한 아키텍처는 데이터를 이동하고 중복 스토리지 및 수집 비용을 지불하는 대신 데이터가 있는 곳에서 직접 쿼리합니다.

 **다양한 소스의 패널 구성:** 사전 빌드된 대시보드와 사용자 지정 대시보드를 사용하여 다양한 데이터 소스의 데이터를 단일 창으로 가져옵니다.

 **사용자 수준에서의 변환 및 컴퓨팅**: 사용자는 데이터 준비 노력을 거의 들이지 않고도 데이터를 변환하고 보고 있는 데이터에서 다양한 계산을 실행할 수 있습니다.

 **패널 내에서 결합, 컴퓨팅 및 시각화**: Snowflake 및 기타 소스의 관련 데이터를 표시하는 혼합 데이터 소스 패널을 생성합니다.

### 특성
<a name="snowflake-features"></a>

 **쿼리 편집기:** 쿼리 편집기는 시계열 또는 테이블 데이터를 시각화하고, SQL 구문 오류를 처리하며, 기본 SQL 키워드를 자동 완성할 수 있는 스마트 SQL 자동 완성 편집기입니다.

 **데이터 소스 권한:** Grafana에서 Snowflake 데이터를 보거나 쿼리할 수 있는 사용자 제어 

 **주석:** 이벤트를 다른 그래프 데이터와 상관시키기 위해 모든 Grafana 그래프에서 Snowflake 이벤트를 오버레이합니다.

 **알림:** Snowflake에서 알림 기반 지표 저장소 설정 

 **쿼리용 변수:** Snowflake 데이터를 기반으로 Grafana에서 템플릿 변수를 생성하고 Snowflake 쿼리에 변수를 포함하여 대시보드를 대화형으로 만듭니다.

 **다중 지표 쿼리:** 각각 자체 열에 여러 지표를 반환하는 단일 쿼리를 작성합니다.

## Snowflake 플러그인 시작하기
<a name="get-started-with-the-snowflake-plugin"></a>

 다음은 Grafana에서 Snowflake 플러그인을 시작하는 간단한 5단계입니다.

### 1단계: Snowflake 데이터 소스 설정
<a name="set-up-the-snowflake-data-source"></a>

 데이터 소스를 구성하려면 **구성**, **데이터 소스 **, **데이터 소스 추가**, Snowflake를 선택하세요.

 인증 세부 정보를 추가하면 데이터 소스가 쿼리할 준비가 됩니다\$1

 다음 구성 필드를 사용할 수 있습니다.


|  이름  |  설명  | 
| --- | --- | 
|  Account  |  Snowflake 계정. | 
|  사용자 이름  |  서비스 계정에 대한 사용자 이름. | 
|  암호  |  서비스 계정에 대한 암호. | 
|  스키마(선택 사항)  |  쿼리에 대한 기본 스키마를 설정합니다. | 
|  웨어하우스(선택 사항)  |  쿼리에 대한 기본 웨어하우스를 설정합니다. | 
|  데이터베이스(선택 사항)  |  쿼리에 대한 기본 데이터베이스를 설정합니다. | 
|  역할(선택 사항)  |  쿼리에 대한 역할을 수임합니다. | 

### 2단계: Snowflake 데이터에 대한 쿼리 작성
<a name="write-queries-for-your-snowflake-data"></a>

 대시보드에서 패널을 생성하고 Snowflake 데이터 소스를 선택하여 쿼리 편집기 사용을 시작하세요.
+  날짜/시간은 쿼리가 포함되어 있는 한 쿼리의 모든 위치에 표시될 수 있습니다.
+  숫자 열을 포함해야 합니다. 집계 또는 int/float 열일 수 있습니다.
+  시계열 데이터 형식이 지표마다 다르게 지정된 경우 선택적으로 문자열 열을 포함하여 별도의 데이터 시리즈를 생성할 수 있습니다.

#### Snowflake 쿼리의 레이아웃
<a name="layout-of-a-snowflake-query"></a>

```
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 쿼리 형식
<a name="sql-query-format-for-timeseries-group-by-interval"></a>

```
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 쿼리 형식
<a name="sql-query-format-for-tables"></a>

```
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단계: 템플릿 변수 생성 및 사용
<a name="snowflake-create-and-use-template-variables"></a>

#### 템플릿 변수 사용
<a name="snowflake-using-template-variables-1"></a>

 다음 예제와 같이 쿼리에 템플릿 변수를 포함할 수 있습니다.

```
 select
   <column>
 from 
   <table>
 WHERE column >= '$variable'
```

 다음 예제에서는 쿼리에서 다중 값 변수 사용을 보여줍니다.

```
select
  <column>
from 
  <table>
WHERE <column> regexp '${variable:regex}'
```

#### Snowflake 데이터 소스를 사용하여 변수 생성
<a name="using-the-snowflake-datasource-to-create-variables"></a>

 대시보드 설정에서 **변수**를 선택하고 **새로 만들기**를 선택하세요.

 '쿼리' 변수 유형을 사용하여 Snowflake 데이터 소스를 '데이터 소스'로 선택하세요.

**중요**  
 변수 쿼리에서 열 하나만 선택해야 합니다.

 예제: 

```
SELECT DISTINCT query_type from account_usage.query_history;
```

 다음과 같은 변수를 제공합니다.

```
All DESCRIBE USE UNKNOWN GRANT SELECT CREATE DROP SHOW
```

### 4단계: 알림 설정
<a name="snowflake-set-up-an-alert"></a>

 특정 Snowflake 지표 또는 사용자가 생성한 쿼리에 대해 알림을 설정할 수 있습니다.

 쿼리 편집기에서 알림 탭 버튼을 선택하고 **알림 생성**을 선택하세요.

### 5단계. 주석 생성
<a name="snowflake-create-an-annotation"></a>

 주석을 사용하면 그래프에서 이벤트를 오버레이할 수 있습니다.

 주석을 생성하려면 대시보드 설정에서 **주석**, **새로 만들기**를 선택하고 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로의 모든 로그인 실패에 대한 주석이 오버레이됩니다.

## 추가 기능
<a name="additional-functionality"></a>

### 표시 이름 필드 사용
<a name="snowflake-using-display-name"></a>

 이 플러그인은 옵션 패널의 필드 탭에 있는 표시 이름 필드를 사용하여 이름, 레이블 또는 값에 따라 범례 키를 축약하거나 변경합니다. 다른 데이터 소스에서는 사용자 지정 `alias` 기능을 사용하여 범례 키를 수정하지만, 표시 이름 함수는 이를 수행하는 보다 일관된 방법입니다.

### 데이터 소스 권한
<a name="snowflake-data-source-permissions"></a>

 데이터 소스 구성 페이지에서 **권한** 탭을 선택해 데이터 소스 권한을 활성화하여 Snowflake에 대한 액세스를 제한합니다. 권한 페이지에서 관리자는 권한을 활성화하고 특정 사용자 및 팀으로 쿼리 권한을 제한할 수 있습니다.

### Snowflake 결제 및 사용량 데이터 이해
<a name="understand-your-snowflake-billing-and-usage-data"></a>

 Snowflake 데이터 소스 내에서 유용한 결제 및 사용량 정보를 보여주는 결제 및 사용량 대시보드를 가져올 수 있습니다.

 Snowflake 데이터 소스 구성 페이지에서 대시보드를 추가하세요.

 이 대시보드는 ACCOUNT\$1USAGE 데이터베이스를 사용하며 쿼리 수행자는 ACCOUNTADMIN 역할을 보유해야 합니다. 이를 안전하게 수행하려면 ACCOUNTADMIN 역할의 사용자가 있는 새 Grafana 데이터 소스를 생성합니다. 그런 다음, 변수에서 해당 데이터 소스를 선택하세요.

# Splunk 데이터 소스에 연결
<a name="splunk-datasource"></a>

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

## 구성
<a name="splunk-configuration-3"></a>

### 데이터 소스 구성
<a name="splunk-data-source-config"></a>

 데이터 소스를 구성할 때 URL 필드가 `https`를 사용하고 구성된 Splunk 포트를 가리키는지 확인합니다. 기본 Splunk API 포인트는 8000이 아닌 8089입니다(기본 웹 UI 포트임). **기본 인증을 활성화하고 Splunk 사용자 이름과 암호를 지정합니다.

#### 브라우저(직접) 액세스 모드 및 CORS
<a name="splunk-browser-direct-access-mode-and-cors"></a>

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

### 고급 옵션
<a name="splunk-advanced-options"></a>

#### 스트림 모드
<a name="stream-mode"></a>

 검색 결과가 사용 가능해질 때 검색 결과를 가져오도면 스트림 모드를 활성화합니다. 이 기능은 실험적 기능이므로 실제로 필요할 때까지 활성화하지 마세요.

#### 결과 폴링
<a name="splunk-poll-result"></a>

 검색을 실행한 다음, 주기적으로 결과를 확인합니다. 후드에서 이 옵션은 `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 엔드포인트에 대해 자세히 알아보세요.

#### 검색 폴링 간격
<a name="splunk-search-polling-interval"></a>

 이 옵션을 사용하면 Amazon Managed Grafana에서 검색 결과를 위해 Splunk를 폴링하는 빈도를 조정할 수 있습니다. [최소, 최대) 간격에서 무작위로 선택하는 다음 폴링 시간. 대량 검색을 많이 실행하는 경우 이 값을 늘리는 것이 좋습니다. 팁: 검색 작업 실행에 시간이 오래 걸리는 경우 **최소를 늘리고 병렬 검색을 많이 실행하는 경우(Grafana 대시보드에서 많은 Splunk 지표) **최대를 늘립니다. 기본값은 [500, 3000)밀리초 간격입니다.

#### 자동 취소
<a name="auto-cancel"></a>

 지정된 경우 작업이 이 기간(초 단위)에 활동이 없으면 자동으로 취소됩니다(0은 자동 취소 없음). 기본값은 30입니다.

#### 상태 버킷
<a name="status-buckets"></a>

 생성할 최대 상태 버킷. 0은 타임라인 정보를 생성하지 않음을 나타냅니다. 기본값은 300입니다.

#### 필드 검색 모드
<a name="splunk-fields-search-mode"></a>

 시각적 쿼리 편집기를 사용하는 경우 데이터 소스는 선택한 소스 유형에 사용 가능한 필드 목록을 가져오려고 시도합니다.
+  빠른 - 미리 보기에서 사용 가능한 첫 번째 결과를 사용합니다.
+  전체 - 작업이 완료될 때까지 기다렸다가 전체 결과를 얻습니다.

#### 가장 빠른 기본 시간
<a name="default-earliest-time"></a>

 일부 검색에서는 대시보드 시간 범위(예: 템플릿 변수 쿼리)를 사용할 수 없습니다. 이 옵션은 항상 검색을 방지하여 Splunk 속도를 늦출 수 있습니다. 구문은 정수 및 시간 단위 `[+|-]<time_integer><time_unit>`입니다. 예: `-1w`. [시간 단위](https://docs.splunk.com/Documentation/Splunk/latest/Search/Specifytimemodifiersinyoursearch)는 `s, m, h, d, w, mon, q, y`일 수 있습니다.

#### 변수 검색 모드
<a name="splunk-variables-search-mode"></a>

 템플릿 변수 쿼리를 위한 검색 모드입니다. 가능한 값은 다음과 같습니다.
+  빠른 - 이벤트 검색을 위한 필드 검색을 끕니다. 통계 검색을 위한 이벤트 또는 필드 데이터가 없습니다.
+  스마트 - 이벤트 검색을 위한 필드 검색을 켭니다. 통계 검색을 위한 이벤트 또는 필드 데이터가 없습니다.
+  상세 - 모든 이벤트 및 필드 데이터.

## 사용법
<a name="splunk-usage-5"></a>

### 쿼리 편집기
<a name="splunk-query-editor-2"></a>

#### 편집기 모드
<a name="splunk-editor-modes"></a>

 쿼리 편집기는 원시 모드 및 시각적 모드와 같은 두 가지 모드를 지원합니다. 이러한 모드 사이를 전환하려면 편집기 오른쪽에 있는 햄버거 아이콘을 선택하고 **편집기 모드 전환을 선택합니다.

#### 원시 모드
<a name="raw-mode"></a>

 다음 코드 예제와 같이 시계열 데이터에 대해 `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`
<a name="splunk-metrics-and-mstats"></a>

 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` 명령에 대해 자세히 알아보세요.

#### 형식
<a name="format-as"></a>

 지원되는 결과 형식 모드는 **시계열(기본값)과 **테이블입니다. 테이블 모드는 집계된 데이터를 표시하려는 경우 테이블 패널과 함께 사용하는 데 적합합니다. 원시 이벤트(선택한 모든 필드를 반환) 및 테이블과 유사한 데이터를 반환하는 `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` 함수 사용에 대해 자세히 알아보세요.

#### 시각적 모드
<a name="splunk-visual-mode"></a>

이 모드는 단계별 검색 생성을 제공합니다. 이 모드는 `timechart` Splunk 검색을 생성합니다. 인덱스, 소스 유형 및 지표를 선택하고 원하는 경우 분할 기준 필드를 설정하기만 하면 됩니다.

##### 지표
<a name="splunk-metric"></a>

 지표 행 오른쪽에 있는 **더하기 버튼을 선택하여 여러 지표를 추가할 수 있습니다. 지표 편집기에는 자주 사용되는 집계 목록이 포함되어 있지만 여기에서 다른 함수를 지정할 수 있습니다. agg 세그먼트(기본적으로 `avg`)를 선택하고 필요한 항목을 입력하기만 하면 됩니다. 드롭다운 목록에서 관심 필드를 선택하거나 입력하고, 원하는 경우 별칭을 설정합니다.

##### 분위 기준 및 위치
<a name="split-by-and-where"></a>

 분할 기준 필드를 설정하고 *시계열* 모드를 사용하는 경우 Where 편집기를 사용할 수 있습니다. **더하기를 선택하고 연산자, 집계 및 값을 선택합니다. 예를 들어 **Where avg in top 10과 같습니다. 이 **Where 절은 *분할 기준*의 일부입니다. [timechart 문서](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/timechart#where_clause)에서 자세히 알아보세요.

#### 옵션
<a name="splunk-options"></a>

 기본 timechart 옵션을 변경하려면 마지막 행에서 **옵션**을 선택합니다.

[timechart 문서](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/timechart)에서 이러한 옵션에 대해 자세히 알아보세요.

#### 렌더링된 Splunk 검색
<a name="rendered-splunk-search"></a>

 왼쪽에서 대상 문자를 선택하여 편집기를 축소한 후 렌더링된 Splunk 검색을 표시합니다.

### Annotations
<a name="splunk-annotations-2"></a>

그래프에 Splunk 알림 또는 이벤트를 표시하려면 주석을 사용합니다. 주석은 사전 정의된 Splunk 알림 또는 정기적인 Splunk 검색일 수 있습니다.

#### Splunk 알림
<a name="splunk-alert"></a>

 알림 이름을 지정하거나 필드를 비워 두면 모든 알림이실행됩니다. 템플릿 변수가 지원됩니다.

#### Splunk 검색
<a name="splunk-search"></a>

 다음 예제와 같이 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*\]: (.*)
```

 정규식을 사용하면 메시지의 일부를 추출할 수 있습니다.

### 템플릿 변수
<a name="splunk-template-variables"></a>

 템플릿 변수 기능은 `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"
```

#### 다중 값 변수
<a name="splunk-multi-value-variables"></a>

 쿼리에 다중 값 변수를 사용할 수 있습니다. 보간된 검색은 변수 사용 컨텍스트에 따라 달라집니다. 플러그인에서 지원하는 여러 컨텍스트가 있습니다. 선택한 값 `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)
  ```

#### 다중 값 변수 및 따옴표
<a name="multi-value-variables-and-quotes"></a>

 변수를 따옴표(큰따옴표 또는 작은따옴표)로 묶은 경우 다음 예제와 같이 해당 값도 따옴표로 묶습니다.

```
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 데이터 소스에 연결
<a name="AMG-datasource-splunkinfra"></a>

Splunk Infrastructure Monitoring(이전의 SignalFx)에 대한 지원을 제공합니다.

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

## 데이터 소스 추가
<a name="bigquery-adding-the-data-source"></a>

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 사용자 인터페이스에 로그인할 때 프로파일 페이지에서 영역 이름을 찾을 수 있습니다.

## 쿼리 편집기 사용하기
<a name="splunkinfra-query"></a>

쿼리 편집기는 [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)
<a name="wavefront-datasource-for-AMG"></a>

 Wavefront(Wavefront의 VMware Tanzu Observability) 데이터 소스를 사용하면 Amazon Managed Grafana 사용자가 Wavefront에서 직접 수집하고 있는 데이터를 쿼리 및 시각화하고 다른 지표, 로그, 추적 또는 기타 데이터 소스와 함께 쉽게 시각화할 수 있습니다. 이 유연한 단일 창 보기를 사용하면 시스템 상태를 더 쉽게 추적하고 문제를 디버깅할 수 있습니다.

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

## Wavefront란 무엇인가요?
<a name="what-is-wavefront"></a>

 [Wavefront](https://www.wavefront.com)는 VMware에서 개발한 클라우드 모니터링 및 분석 도구입니다. Wavefront는 CollectD AWS, StatsD, JMX, Ruby의 로거 또는 기타 도구에서 시계열(지표) 데이터를 전송하는 클라우드 호스팅 서비스입니다. Wavefront를 사용하면 사용자는 해당 시리즈에서 수학 연산을 수행하고, 차트를 렌더링하여 이상을 확인하며, KPI를 추적하고, 알림을 생성할 수 있습니다.

## Wavefront 및 Grafana를 사용하여 기술 스택 최대화
<a name="maximizing-your-tech-stack-with-wavefront-and-AMG"></a>

 Grafana와 Wavefront는 표면적으로 비슷해 보이지만 많은 조직에서 Wavefront와 Grafana를 모두 관찰성 워크플로의 중요한 부분으로 사용합니다.

 **데이터 소스 이동 없이 시각화:** Grafana의 고유한 아키텍처는 데이터를 이동하고 중복 스토리지 및 수집 비용을 지불하는 대신 데이터가 있는 곳에서 직접 쿼리합니다.

 **다양한 소스에서 패널 구성** 사전 빌드된 대시보드와 사용자 지정 대시보드를 사용하여 다양한 데이터 소스의 데이터를 단일 창으로 가져옵니다.

 **사용자 수준에서 변환 및 계산:** 사용자는 데이터 준비 노력을 거의 들이지 않고도 데이터를 변환하고 보고 있는 데이터에서 다양한 계산을 실행할 수 있습니다.

 **패널 내에서 결합, 컴퓨팅 및 시각화:** Waveferont 및 기타 소스(예: Prometheus 및 InfluxDB)의 관련 데이터를 표시하는 혼합 데이터 소스 패널을 생성합니다.

## 설명서
<a name="wavefront-documentation"></a>

### 특성
<a name="wavefront-features-3"></a>
+  시계열 시각화 
+  테이블 시각화 
+  히트맵 시각화 
+  단일 통계 시각화 
+  안내식 쿼리 편집기 
+  원시 WQL 쿼리 편집기 
+  이벤트 데이터에 대한 주석 
+  템플릿 변수 
+  임시 필터 
+  알림 

### 구성
<a name="wavefront-configuration-4"></a>

 Wavefront 데이터 소스를 구성하는 방법은 비교적 간단합니다. 구성을 완료하는 데 두 가지 필드(`API URL` 및 `Token`)만 있으면 됩니다.
+  `API URL`은 Wavefront 환경에 액세스하는 데 사용하는 URL입니다. 예시: `https://myenvironment.wavefront.com`.
+  `Token`은 사용자 계정 또는 서비스 계정에서 생성되어야 합니다.

  1.  사용자 계정 기반 토큰을 생성하려면 Wavefront 환경에 로그인하고 페이지 오른쪽 상단에 있는 톱니를 선택합니다. 그리고 사용자 이름(예: `me@grafana.com`)을 선택하고 사용자 페이지 상단에 있는 **API 액세스** 탭을 선택한 다음, 기존 키를 복사하거나 **생성**을 선택하세요.

  1. 서비스 계정 기반 토큰을 생성하려면 Wavefront 환경에 로그인하고 페이지 오른쪽 상단에 있는 톱니를 선택하고 계정 관리를 선택하세요. 왼쪽 탐색에서 **계정, 그룹 및 역할**을 선택하고 상단의 **서비스 계정** 탭을 선택한 다음, **새 계정 생성**을 선택하세요. 서비스 계정 이름을 입력하세요. 어떤 이름도 가능합니다. **토큰** 섹션에 제공된 토큰을 복사하세요.

  1. 마지막 단계는 **권한**에서 **계정, 그룹 및 역할** 확인란을 선택했는지 확인하는 것입니다.

 토큰이 있으면 `Token` 구성 필드에 토큰을 추가하면 모든 준비를 마친 것입니다\$1

 최종 구성 페이지는 다음과 비슷합니다.

### 사용법
<a name="wavefront-usage-6"></a>

#### 쿼리 편집기 사용하기
<a name="wavefront-using-the-query-editor"></a>

 Wavefront 쿼리 편집기에는 **쿼리 빌더** 및 **원시 쿼리**와 같은 두 가지 모드가 있습니다. 둘 사이를 전환하려면 쿼리 양식의 오른쪽 상단에 있는 선택기를 사용합니다.

 **쿼리 빌더** 모드에서는 네 가지 선택 사항이 제공됩니다.

1.  쿼리하려는 지표는 무엇인가요?

1.  해당 지표에 대해 어떤 집계를 수행하고 싶나요?

1.  해당 지표 쿼리의 결과를 필터링하려면 어떻게 해야 하나요?

1.  결과에 추가 함수를 적용하시겠어요?

 지표 선택기는 범주형 계층입니다. 범주를 선택한 다음, 다시 선택하여 하위 범주로 드릴합니다. 원하는 지표에 도달할 때까지 이 프로세스를 반복합니다.

 지표를 선택하면 사용 가능한 필터 및 필터 값이 자동으로 채워집니다.

 **원시 쿼리** 모드에서는 **쿼리**라는 단일 필드가 표시됩니다. 이 경우 원하는 [WQL](#wavefront-references) 쿼리를 실행할 수 있습니다.

#### 필터 사용
<a name="wavefront-using-filters-1"></a>

 Wavefront 플러그인은 각 지표에 적합한 필터를 동적으로 쿼리합니다.

 필터를 추가하려면 Wavefront 쿼리 편집기의 **필터** 레이블 옆에 있는 **\$1**를 선택하고 필터링할 필드를 선택한 다음, 필터링할 값을 선택합니다.

#### 함수 사용
<a name="wavefront-using-functions"></a>

 함수는 지표 응답 데이터를 집계 및 조작하고 해당 데이터에서 계산하는 추가 방법을 제공합니다. 사용 가능한 함수를 보려면 **쿼리 빌더**의 함수 레이블 옆에 있는 드롭다운 목록을 선택합니다. 선택한 함수에 따라 그룹화 기준 필드를 설정하거나 임계치를 적용하는 등의 추가 작업을 수행할 수 있습니다. 사용자는 여러 함수를 함께 연결하여 고급 계산 또는 데이터 조작을 수행할 수 있습니다.

#### 쿼리 템플릿 변수 추가
<a name="wavefront-adding-a-query-template-variable-1"></a>

1.  대시보드에 대한 새 Wavefront 템플릿 변수를 생성하려면 대시보드 오른쪽 상단에서 설정 톱니를 선택하세요.

1.  왼쪽 패널에서 **변수**를 선택하세요.

1.  변수 페이지의 오른쪽 상단에서 **새로 만들기**를 선택하세요.

1.  생성하려는 템플릿 변수의 **이름** 및 **레이블**을 입력하세요. **이름**은 쿼리 내에서 템플릿 변수를 참조하는 데 사용할 값입니다. **레이블**은 대시보드 선택 패널에서 템플릿 변수에 대해 표시할 친숙한 이름입니다.

1.  유형 필드에 대한 **쿼리** 유형을 선택하세요(기본적으로 선택해야 함).

1.  **쿼리 옵션** 제목의 **데이터 소스** 드롭다운 목록에서 **Wavefront**를 선택하세요.

1.  **쿼리** 필드에 입력해야 하는 항목에 대한 자세한 내용은 [템플릿 변수 쿼리 구조](#template-variable-query-structure)를 참조하세요.

1.  쿼리에서 반환된 값을 필터링하려면 **정규식** 입력 필드에 정규식을 입력하세요.

1.  **정렬** 드롭다운 목록에서 정렬 유형을 선택하여 있을 수 있는 정렬 기본 설정을 적용하세요.

1.  구성을 확인한 후 **추가**를 선택하여 템플릿 변수를 추가한 다음, 왼쪽 탐색 패널에서 **대시보드 저장**을 선택하여 변경 사항을 저장하세요.

#### 템플릿 변수 쿼리 구조
<a name="template-variable-query-structure"></a>

 지표 목록: metrics: ts(…) 

 소스 목록: sources: ts(…) 

 소스 태그 목록: sourceTags: ts(…) 

 일치하는 소스 태그 목록: matchingSourceTags: ts(…) 

 태그 이름 목록: tagNames: ts(…) 

 태그 값 목록: tagValues(<tag>): ts(…) 

 **참고** 
+  각 쿼리 유형의 끝에 있는 s는 선택 사항입니다.
+  모든 소문자를 지원합니다. tagnames 또는 tagNames는 사용할 수 있지만 TAGNAMES는 사용할 수 없습니다.
+  주변 공백 사용: 선택 사항입니다.

   **경고** 

   `Multi-value` 및 `Include All option`는 현재 Wavefront 플러그인에서 지원되지 않습니다.

#### 템플릿 변수 사용
<a name="wavefront-using-template-variables-2"></a>

 [새 템플릿 변수를 추가](#wavefront-adding-a-query-template-variable-1)하는 단계를 완료한 후에는 이제 대시보드 패널 내에서 템플릿 변수를 사용하여 동적 시각화를 생성할 준비가 된 것입니다.

1.  대시보드의 오른쪽 상단에 있는 패널\$1 아이콘을 사용하여 새 대시보드 패널을 추가하세요.

1.  쿼리에 사용할 집계를 선택하세요.

1.  **필터** 레이블 옆의 \$1 아이콘을 선택하고 템플릿 변수와 일치시킬 키 유형을 선택하세요(예: 호스트 필터의 경우 `host=`).

1.  필터의 **값** 입력 필드에 생성한 템플릿 변수의 이름을 입력하세요.

1.  대시보드를 저장합니다.

 이제 템플릿 변수의 다양한 값을 순환하고 패널을 동적으로 업데이트할 수 있습니다.

#### 임시 필터 사용
<a name="wavefront-using-ad-hoc-filters"></a>

 임시 필터를 사용하려면 두 개의 템플릿 변수를 생성해야 합니다. 첫 번째 항목은 지표를 선택하는 데 사용되는 헬퍼 변수로, 해당 지표 이름에 대한 임시 필터를 채울 수 있습니다. 다른 하나는 실제 임시 필터 변수입니다.

**중요**  
 필요한 헬퍼 변수의 이름은 `metriclink`여야 합니다. 사용하려는 지표 목록이 있는 사용자 지정 변수이거나 [템플릿 변수 쿼리 구조](#template-variable-query-structure)를 사용하는 쿼리 기반 변수일 수 있습니다. 단일 지표의 값만 사용하여 임시 필터 필드를 채우려는 경우 `metriclink` 템플릿 변수를 숨길 수 있습니다.

 `metriclink` 변수를 생성한 후 이제 [쿼리 템플릿 변수 추가](#wavefront-adding-a-query-template-variable-1)에 설명된 것과 동일한 단계에 따라 임시 필터를 추가할 수 있습니다. 차이는 **임시 필터**를 **유형**으로 선택하고 쿼리에 입력이 필요하지 않다는 점입니다.

#### 주석 추가
<a name="wavefront-adding-annotations"></a>

1.  대시보드에 대한 새 Wavefront 주석을 생성하려면 대시보드 오른쪽 상단에서 설정 톱니를 선택하세요.

1.  왼쪽 패널에서 **주석**을 선택하세요.

1.  주석 페이지의 오른쪽 상단에서 **새로 만들기**를 선택하세요.

1.  주석 이름을 입력하세요(이 이름은 대시보드의 토글 이름으로 사용됨).

1.  Wavefront의 **데이터 소스**를 선택하세요.

1.  기본적으로 주석에서 반환되는 알림 이벤트는 100개로 제한됩니다. 이를 변경하려면 **제한** 필드를 원하는 값으로 설정하세요.

1.  **추가**를 선택합니다.

#### 주석 사용
<a name="using-annotations"></a>

 주석을 켜면 이제 지정된 기간과 관련된 알림 이벤트 및 문제가 표시됩니다.

 시각화의 주석이 달린 섹션 하단에서 일시 중지하면 알림 이름을 표시하고 Wavefront의 알림에 대한 직접 링크를 제공하는 팝업 창이 표시됩니다.

#### 표시 이름 필드 사용
<a name="wavefront-using-display-name-1"></a>

 이 데이터 소스는 옵션 패널의 필드 탭에 있는 표시 이름 필드를 사용하여 이름, 레이블 또는 값에 따라 범례 키를 축약하거나 변경합니다. 다른 데이터 소스에서는 사용자 지정 `alias` 기능을 사용하여 범례 키를 수정하지만, 표시 이름 함수는 이를 수행하는 보다 일관된 방법입니다.

### 참조
<a name="wavefront-references"></a>
+  [Wavefront 쿼리 언어(WQL)](https://docs.wavefront.com/query_language_reference.html) 