> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# otelgen으로 합성 OpenTelemetry 데이터 생성

> otelgen을 사용해 합성 로그, 트레이스, 메트릭을 ClickStack OpenTelemetry collector로 전송합니다

[`otelgen`](https://github.com/krzko/otelgen)은 합성 OTLP 로그, 트레이스, 메트릭을 생성하는 간단한 Go CLI입니다. 이를 사용해 기존 ClickStack OpenTelemetry collector가 데이터를 수신하는지, 그리고 이벤트가 ClickStack UI에 표시되는지 확인할 수 있습니다.

이 가이드에서는 collector가 이미 실행 중이며 `4317`(gRPC) 및 `4318`(HTTP)에서 OTLP 엔드포인트를 제공한다고 가정합니다.

<Tabs>
  <Tab title="관리형 ClickStack">
    <Steps>
      <Step title="사전 요구 사항" id="prerequisites-managed">
        이 가이드는 [Managed ClickStack 시작하기 가이드](/docs/ko/clickstack/deployment/managed)를 완료했으며, `otelgen`을 실행하는 머신에서 OTLP gRPC (`4317`) 및 HTTP (`4318`) 엔드포인트에 연결할 수 있는 OpenTelemetry collector가 실행 중이라고 가정합니다. [collector를 보호](/docs/ko/clickstack/ingesting-data/collector#securing-the-collector)하기 위해 `OTLP_AUTH_TOKEN`을 설정했다면, 해당 값을 준비해 두십시오.
      </Step>

      <Step title="otelgen 설치" id="install-otelgen-managed">
        Homebrew로 설치합니다:

        ```shell theme={null}
        brew install krzko/tap/otelgen
        ```

        또는 Go로 설치합니다:

        ```shell theme={null}
        go install github.com/krzko/otelgen@latest
        ```
      </Step>

      <Step title="환경 변수 설정" id="set-env-vars-managed">
        collector 엔드포인트와, collector가 보호되어 있다면 인증 토큰을 export합니다:

        ```shell theme={null}
        export OTEL_ENDPOINT=<host>:4317
        export OTLP_AUTH_TOKEN=<your_otlp_auth_token>
        ```

        collector의 호스트와 포트를 사용하십시오. collector가 동일한 머신에서 실행 중이라면 `localhost:4317`입니다.

        <Info>
          **보호되지 않은 collector**

          ClickStack OpenTelemetry collector는 기본적으로 인증되지 않습니다. `OTLP_AUTH_TOKEN`을 설정하기 위해 [collector 보호](/docs/ko/clickstack/ingesting-data/collector#securing-the-collector)를 수행하지 않았다면, 여기서는 `OTLP_AUTH_TOKEN`을 생략하고 아래 명령에서 `--header` 플래그를 제거하십시오.
        </Info>
      </Step>

      <Step title="trace 생성" id="generate-traces-managed">
        여러 스팬으로 구성된 trace를 짧게 전송합니다:

        ```shell theme={null}
        otelgen --otel-exporter-otlp-endpoint ${OTEL_ENDPOINT} \
          --header "authorization=${OTLP_AUTH_TOKEN}" \
          --protocol grpc --insecure \
          --rate 2 --duration 10 \
          traces multi
        ```

        `--rate`는 초당 trace 수이고 `--duration`은 초 단위 실행 시간입니다. `--insecure`는 gRPC 연결에서 TLS를 비활성화하며, `otelgen`을 collector의 plaintext OTLP 포트로 전송할 때 필요합니다.
      </Step>

      <Step title="로그 생성" id="generate-logs-managed">
        ```shell theme={null}
        otelgen --otel-exporter-otlp-endpoint ${OTEL_ENDPOINT} \
          --header "authorization=${OTLP_AUTH_TOKEN}" \
          --protocol grpc --insecure \
          --rate 2 --duration 10 \
          logs multi
        ```
      </Step>

      <Step title="메트릭 생성" id="generate-metrics-managed">
        `metrics` 하위 명령은 `--duration`을 적용하지 않습니다. 명령을 실행한 뒤 몇 초 후 `Ctrl+C`를 눌러 중지하십시오.

        ```shell theme={null}
        otelgen --otel-exporter-otlp-endpoint ${OTEL_ENDPOINT} \
          --header "authorization=${OTLP_AUTH_TOKEN}" \
          --protocol grpc --insecure \
          --rate 2 \
          metrics sum
        ```

        `otelgen`은 `metrics` 아래에서 `gauge`, `histogram`, `up-down-counter`, `exponential-histogram` 하위 명령도 지원합니다.
      </Step>

      <Step title="ClickStack에서 확인" id="verify-managed">
        ClickHouse Cloud 콘솔에서 ClickStack UI를 여십시오. `Search` 보기에서 source를 `Logs`와 `Traces` 사이에서 전환하여 새 이벤트를 확인합니다. 시간 범위를 `Last 15 minutes`로 설정합니다. `Chart Explorer`를 열고 `Metrics`를 선택한 다음, `otelgen`이 생성한 메트릭 이름 중 하나(예: `otelgen.metrics.sum`)를 chart로 표시하여 메트릭 수집을 확인합니다.
      </Step>
    </Steps>
  </Tab>

  <Tab title="ClickStack Open Source">
    <Steps>
      <Step title="사전 요구 사항" id="prerequisites-oss">
        이 가이드는 [all-in-one image용 안내](/docs/ko/clickstack/getting-started/oss)에 따라 Open Source ClickStack을 시작했으며, OTLP 엔드포인트(`4317` gRPC 및 `4318` HTTP)에 연결할 수 있다고 가정합니다. 또한 HyperDX UI의 `Team Settings > API Keys`에서 수집 API key를 확인해야 합니다.
      </Step>

      <Step title="otelgen 설치" id="install-otelgen-oss">
        Homebrew로 설치합니다:

        ```shell theme={null}
        brew install krzko/tap/otelgen
        ```

        또는 Go로 설치합니다:

        ```shell theme={null}
        go install github.com/krzko/otelgen@latest
        ```
      </Step>

      <Step title="환경 변수 설정" id="set-env-vars-oss">
        collector 엔드포인트와 수집 API key를 export합니다:

        ```shell theme={null}
        export OTEL_ENDPOINT=localhost:4317
        export CLICKSTACK_API_KEY=<your_ingestion_api_key>
        ```
      </Step>

      <Step title="traces 생성" id="generate-traces-oss">
        여러 스팬으로 구성된 trace를 짧게 전송합니다:

        ```shell theme={null}
        otelgen --otel-exporter-otlp-endpoint ${OTEL_ENDPOINT} \
          --header "authorization=${CLICKSTACK_API_KEY}" \
          --protocol grpc --insecure \
          --rate 2 --duration 10 \
          traces multi
        ```

        `--rate`는 초당 trace 수이고, `--duration`은 실행 시간(초)입니다. `--insecure`는 로컬 collector에 대해 plaintext gRPC를 사용하도록 설정합니다.
      </Step>

      <Step title="logs 생성" id="generate-logs-oss">
        ```shell theme={null}
        otelgen --otel-exporter-otlp-endpoint ${OTEL_ENDPOINT} \
          --header "authorization=${CLICKSTACK_API_KEY}" \
          --protocol grpc --insecure \
          --rate 2 --duration 10 \
          logs multi
        ```
      </Step>

      <Step title="메트릭 생성" id="generate-metrics-oss">
        `metrics` 하위 명령은 `--duration`을 지원하지 않습니다. 명령을 실행한 후 몇 초 뒤 `Ctrl+C`를 눌러 중지하십시오.

        ```shell theme={null}
        otelgen --otel-exporter-otlp-endpoint ${OTEL_ENDPOINT} \
          --header "authorization=${CLICKSTACK_API_KEY}" \
          --protocol grpc --insecure \
          --rate 2 \
          metrics sum
        ```

        `otelgen`은 `metrics` 아래에서 `gauge`, `histogram`, `up-down-counter`, `exponential-histogram` 하위 명령도 지원합니다.
      </Step>

      <Step title="ClickStack에서 확인" id="verify-oss">
        ClickStack UI를 열려면 [http://localhost:8080](http://localhost:8080)에 접속하십시오. `검색` 보기에서 source를 `Logs`와 `Traces`로 전환하며 새 이벤트가 들어왔는지 확인합니다. time range를 `Last 15 minutes`로 설정합니다. `Chart Explorer`를 열고 `Metrics`를 선택한 다음, `otelgen`이 생성한 메트릭 이름 중 하나(예: `otelgen.metrics.sum`)를 chart로 표시하여 메트릭 수집을 확인합니다.
      </Step>
    </Steps>
  </Tab>
</Tabs>
