중요합니다
이 기능은 베타 버전으로 제공됩니다. 계정 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다.
Azure Databricks 코딩 에이전트 통합을 사용하면 커서, Gemini CLI, Codex CLI 및 Claude Code와 같은 코딩 에이전트에 대한 액세스 및 사용량을 관리할 수 있습니다. AI 게이트웨이를 기반으로 하여 코딩 도구에 대한 속도 제한, 사용량 추적 및 유추 테이블을 제공합니다.
기능
- 액세스: 하나의 청구서 아래에 있는 다양한 코딩 도구 및 모델에 직접 액세스합니다.
- 관찰 가능성: 모든 코딩 도구에서 사용량, 지출 및 메트릭을 추적하는 단일 통합 대시보드입니다.
- 통합 거버넌스: 관리자는 AI 게이트웨이를 통해 직접 모델 권한 및 속도 제한을 관리할 수 있습니다.
요구 사항
- 계정에 대해 AI 게이트웨이(베타) 미리 보기가 사용하도록 설정되었습니다.
- AI 게이트웨이(베타) 지원 지역의 Azure Databricks 작업 영역.
- 작업 영역에서 Unity 카탈로그가 사용하도록 설정되었습니다. Unity 카탈로그에 대한 작업 영역 사용을 참조하세요.
지원되는 에이전트
지원되는 코딩 에이전트는 다음과 같습니다.
설치 프로그램
Cursor
AI 게이트웨이 엔드포인트를 사용하도록 커서를 구성하려면 다음을 수행합니다.
1단계: 기본 URL 및 API 키 구성
커서를 열고 설정>커서 설정>모델>API 키로 이동합니다.
OpenAI 기본 URL 재정의를 사용하도록 설정하고 URL을 입력합니다.
https://<ai-gateway-url>/cursor/v1AI 게이트웨이 엔드포인트 URL로
<ai-gateway-url>를 대체하십시오.Azure Databricks 개인용 액세스 토큰을 OpenAI API 키 필드에 붙여넣습니다.
2단계: 사용자 지정 모델 추가
- 커서 설정에서 + 사용자 지정 모델 추가 를 클릭합니다.
- AI 게이트웨이 엔드포인트 이름을 추가하고 토글을 사용하도록 설정합니다.
비고
현재 Azure Databricks에서 만든 기본 모델 엔드포인트만 지원됩니다.
3단계: 통합 테스트
- (macOS) 또는
Cmd+L(Windows/Linux)를 사용하여 요청 모드Ctrl+L를 열고 모델을 선택합니다. - 메시지를 보냅니다. 이제 모든 요청이 Azure Databricks를 통해 라우팅됩니다.
Codex CLI
1단계: DATABRICKS_TOKEN 환경 변수 설정
export DATABRICKS_TOKEN=<databricks_pat_token>
2단계: Codex 클라이언트 구성
다음 위치에서 Codex 구성 파일을 만들거나 편집합니다.~/.codex/config.toml
profile = "default"
[profiles.default]
model_provider = "proxy"
model = "databricks-gpt-5-2"
[model_providers.proxy]
name = "Databricks Proxy"
base_url = "https://<ai-gateway-url>/openai/v1"
env_key = "DATABRICKS_TOKEN"
wire_api = "responses"
AI 게이트웨이 엔드포인트 URL로 <ai-gateway-url>를 대체합니다.
Gemini CLI
1단계: 최신 버전의 Gemini CLI 설치
npm install -g @google/gemini-cli@nightly
2단계: 환경 변수 구성
파일을 ~/.gemini/.env 만들고 다음 구성을 추가합니다. 자세한 내용은 Gemini CLI 인증 문서를 참조하세요 .
GEMINI_MODEL=databricks-gemini-2-5-flash
GOOGLE_GEMINI_BASE_URL=https://<ai-gateway-url>/gemini
GEMINI_API_KEY_AUTH_MECHANISM="bearer"
GEMINI_API_KEY=<databricks_pat_token>
<ai-gateway-url>를 AI 게이트웨이 엔드포인트 URL로, <databricks_pat_token>를 개인 액세스 토큰으로 각각 교체합니다.
클로드 코드
1단계: Claude Code 클라이언트 구성
에 다음 구성을 추가합니다 ~/.claude/settings.json. 자세한 내용은 Claude Code 설정 문서를 참조하세요 .
{
"env": {
"ANTHROPIC_MODEL": "databricks-claude-opus-4-6",
"ANTHROPIC_BASE_URL": "https://<ai-gateway-url>/anthropic",
"ANTHROPIC_AUTH_TOKEN": "<databricks_pat_token>",
"ANTHROPIC_CUSTOM_HEADERS": "x-databricks-use-coding-agent-mode: true",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
AI 게이트웨이 엔드포인트 URL로 <ai-gateway-url>를 대체하고, 개인 액세스 토큰으로 <databricks_pat_token>를 대체하세요.
2단계(선택 사항): OpenTelemetry 메트릭 컬렉션 설정
클로드 코드에서 Unity 카탈로그 관리 델타 테이블로 메트릭 및 로그를 내보내는 방법에 대한 자세한 내용은 OpenTelemetry 데이터 수집 설정을 참조하세요.
대시보드
코딩 에이전트 사용량이 AI Gateway를 통해 추적되면 기본 대시보드에서 메트릭을 보고 모니터링할 수 있습니다.
대시보드에 액세스하려면 AI 게이트웨이 페이지에서 대시보드 보기를 선택합니다. 이렇게 하면 코딩 도구 사용을 위한 그래프가 있는 미리 구성된 대시보드가 만들어집니다.
OpenTelemetry 데이터 수집 설정
Azure Databricks는 Claude Code에서 Unity 카탈로그 관리 델타 테이블로 OpenTelemetry 메트릭 및 로그 내보내기를 지원합니다. 모든 메트릭은 OpenTelemetry 표준 메트릭 프로토콜을 사용하여 내보낸 시계열 데이터이며 로그는 OpenTelemetry 로그 프로토콜을 사용하여 내보냅니다. 사용 가능한 메트릭 및 이벤트는 Claude Code 모니터링 사용을 참조하세요.
요구 사항
- Azure Databricks 미리 보기에서 OpenTelemetry를 사용하도록 설정했습니다. Azure Databricks 미리 보기 관리를 참조하세요.
1단계: Unity 카탈로그에서 OpenTelemetry 테이블 만들기
OpenTelemetry 메트릭 및 로그 스키마로 미리 구성된 Unity 카탈로그 관리 테이블을 만듭니다.
메트릭 테이블
CREATE TABLE <catalog>.<schema>.<table_prefix>_otel_metrics (
name STRING,
description STRING,
unit STRING,
metric_type STRING,
gauge STRUCT<
start_time_unix_nano: LONG,
time_unix_nano: LONG,
value: DOUBLE,
exemplars: ARRAY<STRUCT<
time_unix_nano: LONG,
value: DOUBLE,
span_id: STRING,
trace_id: STRING,
filtered_attributes: MAP<STRING, STRING>
>>,
attributes: MAP<STRING, STRING>,
flags: INT
>,
sum STRUCT<
start_time_unix_nano: LONG,
time_unix_nano: LONG,
value: DOUBLE,
exemplars: ARRAY<STRUCT<
time_unix_nano: LONG,
value: DOUBLE,
span_id: STRING,
trace_id: STRING,
filtered_attributes: MAP<STRING, STRING>
>>,
attributes: MAP<STRING, STRING>,
flags: INT,
aggregation_temporality: STRING,
is_monotonic: BOOLEAN
>,
histogram STRUCT<
start_time_unix_nano: LONG,
time_unix_nano: LONG,
count: LONG,
sum: DOUBLE,
bucket_counts: ARRAY<LONG>,
explicit_bounds: ARRAY<DOUBLE>,
exemplars: ARRAY<STRUCT<
time_unix_nano: LONG,
value: DOUBLE,
span_id: STRING,
trace_id: STRING,
filtered_attributes: MAP<STRING, STRING>
>>,
attributes: MAP<STRING, STRING>,
flags: INT,
min: DOUBLE,
max: DOUBLE,
aggregation_temporality: STRING
>,
exponential_histogram STRUCT<
attributes: MAP<STRING, STRING>,
start_time_unix_nano: LONG,
time_unix_nano: LONG,
count: LONG,
sum: DOUBLE,
scale: INT,
zero_count: LONG,
positive_bucket: STRUCT<
offset: INT,
bucket_counts: ARRAY<LONG>
>,
negative_bucket: STRUCT<
offset: INT,
bucket_counts: ARRAY<LONG>
>,
flags: INT,
exemplars: ARRAY<STRUCT<
time_unix_nano: LONG,
value: DOUBLE,
span_id: STRING,
trace_id: STRING,
filtered_attributes: MAP<STRING, STRING>
>>,
min: DOUBLE,
max: DOUBLE,
zero_threshold: DOUBLE,
aggregation_temporality: STRING
>,
summary STRUCT<
start_time_unix_nano: LONG,
time_unix_nano: LONG,
count: LONG,
sum: DOUBLE,
quantile_values: ARRAY<STRUCT<
quantile: DOUBLE,
value: DOUBLE
>>,
attributes: MAP<STRING, STRING>,
flags: INT
>,
metadata MAP<STRING, STRING>,
resource STRUCT<
attributes: MAP<STRING, STRING>,
dropped_attributes_count: INT
>,
resource_schema_url STRING,
instrumentation_scope STRUCT<
name: STRING,
version: STRING,
attributes: MAP<STRING, STRING>,
dropped_attributes_count: INT
>,
metric_schema_url STRING
) USING DELTA
TBLPROPERTIES (
'otel.schemaVersion' = 'v1'
)
로그 테이블
CREATE TABLE <catalog>.<schema>.<table_prefix>_otel_logs (
event_name STRING,
trace_id STRING,
span_id STRING,
time_unix_nano LONG,
observed_time_unix_nano LONG,
severity_number STRING,
severity_text STRING,
body STRING,
attributes MAP<STRING, STRING>,
dropped_attributes_count INT,
flags INT,
resource STRUCT<
attributes: MAP<STRING, STRING>,
dropped_attributes_count: INT
>,
resource_schema_url STRING,
instrumentation_scope STRUCT<
name: STRING,
version: STRING,
attributes: MAP<STRING, STRING>,
dropped_attributes_count: INT
>,
log_schema_url STRING
) USING DELTA
TBLPROPERTIES (
'otel.schemaVersion' = 'v1'
)
2단계: Claude Code 설정 파일 업데이트
메트릭 및 로그 내보내기를 사용하도록 설정하려면 파일의 env 블록에 ~/.claude/settings.json 다음 환경 변수를 추가합니다.
{
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_METRICS_PROTOCOL": "http/protobuf",
"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT": "https://<workspace-url>/api/2.0/otel/v1/metrics",
"OTEL_EXPORTER_OTLP_METRICS_HEADERS": "content-type=application/x-protobuf,Authorization=Bearer <databricks_pat_token>,X-Databricks-UC-Table-Name=<catalog>.<schema>.<table_prefix>_otel_metrics",
"OTEL_METRIC_EXPORT_INTERVAL": "10000",
"OTEL_LOGS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_LOGS_PROTOCOL": "http/protobuf",
"OTEL_EXPORTER_OTLP_LOGS_ENDPOINT": "https://<workspace-url>/api/2.0/otel/v1/logs",
"OTEL_EXPORTER_OTLP_LOGS_HEADERS": "content-type=application/x-protobuf,Authorization=Bearer <databricks_pat_token>,X-Databricks-UC-Table-Name=<catalog>.<schema>.<table_prefix>_otel_logs",
"OTEL_LOGS_EXPORT_INTERVAL": "5000"
}
}
다음을 대체하십시오
-
<workspace-url>을(를) Azure Databricks 작업 영역 URL로 바꾸십시오. -
<databricks_pat_token>개인용 액세스 토큰을 사용하십시오. -
<catalog>.<schema>.<table_prefix>OpenTelemetry 테이블을 만들 때 사용되는 카탈로그, 스키마 및 테이블 접두사를 사용합니다.
비고
기본값은 OTEL_METRIC_EXPORT_INTERVAL 60000ms(60초)입니다. 위의 예제에서는 10000ms(10초)로 설정합니다. 기본값은 OTEL_LOGS_EXPORT_INTERVAL 5000ms(5초)입니다.
3단계: Claude 코드 실행
claude
데이터는 5분 이내에 Unity 카탈로그 테이블로 전파되어야 합니다.