Grafana에서 파일 전송 상태 대시보드 만들기

IT 엔지니어개발자

시작하기

기본 개념

여러 파일 전송 Flow의 실행 상태를 하나의 대시보드에서 확인하기

파일 전송 환경에서는 하나의 Flow만 실행되는 것이 아니라, 서버 간 전송, 클라우드 스토리지 이동, 자동 수집과 배포 등 여러 작업이 동시에 실행될 수 있습니다.

각 작업의 결과는 Runs에서 개별적으로 확인할 수 있지만, 전체 운영 현황을 확인하려면 여러 실행 결과를 하나씩 비교해야 할 수 있습니다.

Grafana 대시보드를 활용하면 전송 작업에서 발생하는 주요 상태와 지표를 시간 흐름에 따라 함께 확인할 수 있습니다.

text
┌──────────────────────────────────────────────────────┐
│                   File Transfer                     │
│                                                      │
│  Flow A ──┐                                         │
│  Flow B ──┼──▶ Run / Transfer Metrics               │
│  Flow C ──┘                 │                        │
└─────────────────────────────┼────────────────────────┘
                              │
                              ▼
                     Monitoring Data
                              │
                              ▼
┌──────────────────────────────────────────────────────┐
│                       Grafana                        │
│                                                      │
│  Total Transfer │ Progress │ Completed │ Failed     │
│                                                      │
│  Retry Count    │ Transfer Trend │ Flow Status      │
└──────────────────────────────────────────────────────┘

이렇게 하면 개별 전송 작업을 따로 확인하는 대신 전체 전송 현황 → 특정 Flow 상태 → 개별 Run 확인으로 이어지는 운영 흐름을 구성할 수 있습니다.

대시보드 구성

전송량과 상태 지표를 목적에 맞게 나누어 확인하기

Grafana 대시보드에서는 모든 정보를 하나의 패널에 표시하기보다, 운영 중 확인해야 하는 항목을 역할에 따라 나누어 구성할 수 있습니다.

예를 들어 현재 전송 상태는 상단에서 빠르게 확인하고, 시간에 따른 전송량 변화와 실패 추이는 별도의 패널에서 확인할 수 있습니다.

대시보드의 구성 예시는 다음과 같습니다.

대시보드 영역확인 지표활용
현재 상태진행 중인 Run, 전체 진행률현재 전송 상황 확인
전송량파일 수, 전체 전송 용량처리 규모와 변화 확인
완료 현황완료된 Run 수정상 처리 결과 확인
실패 현황실패한 Run 수문제 발생 여부 확인
재시도Retry 횟수와 상태복구 작업 확인
추이 분석시간별 전송량과 상태 변화반복 패턴 확인
Flow 비교Flow별 성공·실패 결과특정 작업 상태 비교

이처럼 현재 상태와 누적 결과, 시간별 변화를 구분하면 운영자가 확인하려는 상황에 따라 필요한 정보를 빠르게 찾을 수 있습니다.

운영 흐름

대시보드에서 전체 상태를 확인한 뒤 필요한 Run으로 이동하기

Grafana는 전체 전송 환경의 상태를 빠르게 확인하는 화면으로 활용하고, 문제가 발견된 경우에는 해당 Flow와 Run의 상세 정보로 이동해 실제 전송 결과를 확인할 수 있습니다.

전체 흐름은 다음과 같이 구성할 수 있습니다.

text
Grafana Dashboard
        │
        ├── Transfer Volume
        │
        ├── Completed
        │
        ├── Failed
        │
        └── Retrying
                │
                ▼
          Flow Identification
                │
                ▼
             Run Details
                │
                ▼
        Source / Target Check

예를 들어 대시보드에서 특정 시간대에 실패 건수가 증가한 것을 확인하면, 해당 Flow를 찾고 Run 상세 정보에서 Source와 Target, 파일별 처리 결과를 확인할 수 있습니다.

이렇게 하면 전체 현황 확인은 Grafana에서, 실제 파일 전송 결과와 원인 확인은 Run 상세 화면에서 이어서 관리할 수 있습니다.

IT 엔지니어

지표 연결

파일 전송 실행 결과를 모니터링 데이터로 연결하기

먼저 파일 전송 Flow에서 확인할 수 있는 실행 정보와 상태 변화를 모니터링 지표로 전달합니다.

전송량과 파일 수뿐만 아니라 완료, 실패, 재시도와 같은 상태 변화를 함께 연결하면 단순한 사용량 확인을 넘어 파일 전송 환경의 운영 상태를 함께 확인할 수 있습니다.

text
Transfer Flow
      │
      ▼
     Run
      │
      ├── Total Files
      ├── Total Size
      ├── Progress
      ├── Status
      └── Retry
              │
              ▼
        Metrics / Events
              │
              ▼
           Grafana

전송 환경에서는 다음과 같은 지표를 중심으로 구성할 수 있습니다.

지표확인 내용
Transfer Volume일정 기간 동안 처리된 전체 전송량
File Count전송된 파일 수
Progress현재 실행 중인 작업의 진행률
Completed정상적으로 완료된 작업 수
Failed실패하거나 추가 확인이 필요한 작업 수
Retrying재시도 중인 작업과 횟수
Duration전송 작업에 걸린 시간

이렇게 구성하면 파일 전송의 처리 규모와 현재 상태, 반복되는 실패 여부를 서로 다른 지표로 분리해 확인할 수 있습니다.

화면 설계

현재 상태와 시간별 변화를 구분해 대시보드 구성하기

대시보드는 모든 지표를 동일한 방식으로 표시하기보다, 정보의 성격에 따라 적합한 화면으로 나누어 구성할 수 있습니다.

예를 들어 현재 완료·실패 건수는 숫자 중심으로 확인하고, 시간에 따른 전송량 변화는 추이 그래프로 확인할 수 있습니다.

text
┌───────────────────────────────────────────────────┐
│               FILE TRANSFER OVERVIEW              │
├─────────────┬─────────────┬──────────┬────────────┤
│ In Progress │ Completed   │ Failed   │ Retrying   │
│     12      │    248      │    3     │     2      │
├───────────────────────────────────────────────────┤
│                                                   │
│              Transfer Volume Trend                │
│                                                   │
│        ╱╲        ╱╲                               │
│   ╱───╱  ╲──╱╲──╱  ╲────                          │
│                                                   │
├───────────────────────────┬───────────────────────┤
│ Flow Status               │ Retry / Failure Trend │
│                           │                       │
│ Flow A  Completed         │ ↑ Failure             │
│ Flow B  Running           │ → Retry               │
│ Flow C  Failed            │ ↓ Recovery            │  

└───────────────────────────┴───────────────────────┘

예를 들어 다음과 같이 나눌 수 있습니다.

  • 상단 요약 영역: 현재 진행, 완료, 실패, 재시도 상태

  • 전송량 영역: 시간별 파일 수와 전송 용량 변화

  • Flow 상태 영역: 작업별 현재 실행 결과

  • 실패 추이 영역: 일정 기간 동안 발생한 실패 변화

  • 재시도 영역: 복구 작업과 Retry 결과

이처럼 대시보드의 역할을 나누면 한 화면에서 모든 세부 정보를 읽는 대신 현재 상황을 먼저 파악한 뒤 필요한 지표를 중심으로 상세 상태를 확인할 수 있습니다.

전송량 분석

시간대와 Flow별 전송량을 비교해 처리 흐름 확인하기

파일 전송량은 단순히 전체 용량만 확인하는 것보다 시간대와 Flow별로 나누어 보면 실제 처리 패턴을 확인하는 데 도움이 됩니다.

예를 들어 매일 새벽에 백업 파일이 집중적으로 전송되거나, 특정 업무 시간에 대량 파일 전송이 반복되는 흐름을 확인할 수 있습니다.

text
                    Transfer Volume
                           │
        ┌──────────────────┼──────────────────┐
        ▼                  ▼                  ▼
     Time Range         Flow Name          Target
        │                  │                  │
        ▼                  ▼                  ▼
    Hour / Day       Backup Flow         Amazon S3
                     Report Flow         File Server
                     Media Flow          Cloud Storage

전송량을 분석할 때는 다음 기준을 함께 활용할 수 있습니다.

분류 기준확인 목적
시간특정 시간대의 전송 집중 여부 확인
Flow작업별 처리량 비교
Source파일 생성 환경별 전송 규모 확인
Target스토리지별 저장량 확인
파일 수다수의 소형 파일 처리량 확인
전체 용량대용량 파일 전송 규모 확인

이를 통해 전체 전송량만 확인하는 대신 어떤 작업이 언제, 어느 환경으로 많은 파일을 전송하는지 구분해 확인할 수 있습니다.

상태 추적

완료·실패·재시도 결과를 시간 흐름에 따라 확인하기

전송량이 정상적으로 유지되더라도 특정 Flow에서 실패가 반복될 수 있습니다.

따라서 처리 규모와 실행 결과를 함께 확인하면, 단순히 얼마나 많은 파일이 이동했는지뿐 아니라 실제 전송 환경이 안정적으로 동작하고 있는지도 함께 확인할 수 있습니다.

text
                    Run Status
                        │
       ┌────────────────┼────────────────┐
       ▼                ▼                ▼
   Completed          Failed          Retrying
       │                │                │
       ▼                ▼                ▼
   Success Count    Failure Count    Retry Count
       │                │                │
       └────────────────┼────────────────┘
                        ▼
                  Grafana Dashboard
                        │
                        ▼
                Status Trend Analysis

예를 들어 실패 건수와 재시도 건수가 동시에 증가하는 경우에는 네트워크나 Source·Target 환경의 상태를 추가로 확인할 수 있습니다.

반대로 실패 이후 재시도 작업이 완료 상태로 전환되면, 일시적인 문제가 발생했지만 정상적으로 복구되었는지 확인할 수 있습니다.

이처럼 실패 건수만 따로 보는 것이 아니라 실패 → 재시도 → 완료로 이어지는 상태 변화를 함께 확인할 수 있습니다.

Flow 비교

여러 전송 작업의 상태를 같은 기준으로 비교하기

하나의 Grafana 대시보드에서 여러 Flow를 함께 확인하면 특정 작업의 상태를 다른 전송 작업과 비교할 수 있습니다.

예를 들어 대부분의 Flow가 정상적으로 완료되고 있지만 특정 Target으로 전송하는 작업에서만 실패가 반복된다면 해당 환경을 중심으로 추가 확인할 수 있습니다.

text
┌──────────────────────────────────────────────┐
│                 Flow Status                  │
├────────────────┬────────────┬───────────────┤
│ Flow           │ Transfer   │ Current State │
├────────────────┼────────────┼───────────────┤
│ Backup         │ 1.2 TB     │ Completed     │
│ Daily Report   │ 48 GB      │ Completed     │
│ Media Upload   │ 860 GB     │ Retrying      │
│ Archive        │ 2.4 TB     │ Failed        │
└────────────────┴────────────┴───────────────┘

Flow별 상태를 비교할 때는 다음 항목을 기준으로 확인할 수 있습니다.

확인 기준활용
전송량특정 작업의 처리 규모 비교
완료율정상 처리 상태 확인
실패 수반복적인 문제 발생 여부 확인
재시도 수자동 복구 작업 확인
실행 시간예상보다 오래 걸리는 작업 확인
Target특정 저장 환경의 문제 여부 확인

이를 통해 특정 Run을 직접 찾기 전에 전체 Flow 중 추가 확인이 필요한 작업을 먼저 식별할 수 있습니다.

문제 확인

대시보드에서 이상 상태를 찾고 Run 상세 정보로 이어가기

Grafana 대시보드에서 실패 증가나 전송량 변화와 같은 이상 상태가 확인되면, 해당 작업의 Flow와 Run 상세 정보를 통해 실제 전송 결과를 확인할 수 있습니다.

문제 확인 흐름은 상황에 따라 다음과 같이 이어집니다.

text
Dashboard Check
      │
      ▼
Metric Change
      │
      ├── Transfer Volume Increase
      │
      ├── Failed Count Increase
      │
      └── Retry Repeated
                │
                ▼
           Identify Flow
                │
                ▼
            Check Run
                │
         ┌──────┼──────┐
         ▼      ▼      ▼
      Source  Files   Target
         │      │      │
         └──────┼──────┘
                ▼
          Environment Check

Run 상세 정보에서는 실제 파일 전송이 어느 구간에서 추가 확인이 필요한지 확인할 수 있습니다.

예를 들어 Source에서 파일을 읽지 못한 경우에는 파일 경로와 연결 상태를 확인하고, Target 저장에 실패한 경우에는 대상 스토리지의 연결과 접근 범위를 점검할 수 있습니다.

운영 관리

전체 전송 현황과 개별 실행 결과를 연결해 운영하기

Grafana는 여러 파일 전송 작업의 전체 상태와 시간별 변화를 확인하는 화면으로 활용할 수 있습니다.

문제가 확인되면 해당 Flow와 Run의 상세 정보로 이동해 실제 처리 결과를 확인하고 필요한 경우 재시도를 진행할 수 있습니다.

전체 운영 흐름은 다음과 같이 구성할 수 있습니다.

text
┌─────────────────┐
│ Grafana         │
│ Dashboard       │
└────────┬────────┘
         │
         │ Overall Status
         ▼
┌─────────────────┐
│ Flow            │
│ Identification  │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ Run Details     │
└────────┬────────┘
         │
    ┌────┴─────┐
    ▼          ▼
Normal       Issue
    │          │
    │          ▼
    │    Environment Check
    │          │
    │          ▼
    │        Retry
    │          │
    └──────────┘
         │
         ▼
   Updated Metrics
         │
         ▼
 Grafana Dashboard

이 레시피를 적용하면 파일 전송 실행 → 전송량·진행률·상태 지표 수집 → Grafana 대시보드 구성 → Flow별 상태 비교 → 실패와 재시도 추이 확인 → Run 상세 확인 → 재실행 결과 반영까지 하나의 운영 흐름으로 구성할 수 있습니다.

이를 통해 개별 파일 전송 작업을 반복적으로 확인하는 대신, 전송량과 완료·실패·재시도 상태를 Grafana에서 종합적으로 확인하고 전체 파일 전송 환경의 변화와 문제 발생 흐름을 함께 관리할 수 있습니다.

개발자

전송 이력을 조회·집계해 Grafana가 읽을 지표로 노출하기

전송 목록·이력 API를 기간·상태로 조회해 상태별 건수를 집계합니다. 이 지표를 Grafana의 JSON 계열 데이터소스로 노출합니다. 시작 전에 다음 항목을 준비합니다.

준비물내용
INNORIX 인증INNORIX_ACCESS_TOKEN (Authorization: Bearer)
조회 기간·상태집계할 기간(startDate·endDate)과 상태 필터(statusFilter)
Grafana 데이터소스JSON API·Infinity 등 HTTP JSON을 읽는 데이터소스
런타임Python 3 + requests · Java 17+ · Node.js 18+ · .NET 8+

Python·Node.js는 REST를 직접 호출하는 최소 api() 헬퍼를 API 호출 레시피의 것을 재사용합니다. Java·C#은 번들 소스의 InnorixClientJson(C#은 J) 헬퍼를 사용합니다. 상태 코드(2=완료, 4=오류, 9=부분 완료 등)는 무결성 검증·중단 후 재개 레시피의 상태 표를 참고합니다.

전송 이력을 상태별로 집계

기간·상태로 이력을 조회하고 커서로 전체를 순회하며 상태별 건수를 집계합니다. 결과를 Grafana가 읽을 JSON으로 반환합니다.

def transfer_metrics(start_date, end_date, limit=200):
    counts = {}   # status -> count
    cursor = None
    while True:
        params = {"startDate": start_date, "endDate": end_date, "limit": limit}
        if cursor:
            params["cursor"] = cursor
        page = api("GET", "/api/transfer-history", params=params) or {}

        for row in (page.get("data") or []):
            status = row.get("status")
            counts[status] = counts.get(status, 0) + 1

        cursor = (page.get("pagination") or {}).get("nextCursor")
        if not cursor:
            break

    # metric shape read by the Grafana JSON datasource
    return {
        "completed": counts.get(2, 0),
        "error": counts.get(4, 0),
        "partial": counts.get(9, 0),
        "total": sum(counts.values()),
    }


metrics = transfer_metrics("2026-09-01T00:00:00Z", "2026-09-07T23:59:59Z")
print(metrics)   # e.g. {"completed": 120, "error": 3, "partial": 1, "total": 124}

Grafana 연결 방식 INNORIX는 Grafana 전용 통합을 제공하지 않으므로, 위 지표를 Grafana가 읽을 수 있게 노출하는 방법을 선택합니다. 가장 간단한 방법은 이 함수를 작은 HTTP 엔드포인트로 감싸고 Grafana의 JSON API·Infinity 데이터소스로 조회하는 것입니다. 데이터소스·패널 구성은 Grafana 쪽 설정입니다.

커서 페이지네이션 /api/transfer-historypagination.nextCursor로 페이지를 넘깁니다. 대량 이력은 커서가 없어질 때까지 순회해 전체를 집계합니다. 실시간 진행 지표가 필요하면 GET /api/transfers(활성 목록, statusFilter)를 함께 조회합니다.

구현 결과

이 레시피를 적용하면 다음 흐름으로 전송 지표를 Grafana에서 확인할 수 있습니다.

text
전송 이력·활성 목록 API 조회 (기간·상태·커서)
   ↓  상태별 집계 (완료·실패·부분)  

지표 JSON 노출
   ↓  Grafana JSON 데이터소스가 조회  

Grafana 대시보드 패널

전송 이력을 기간·상태로 집계해 지표로 노출하고, Grafana 데이터소스로 읽어 전송 건수·성공·실패 추이를 대시보드로 확인할 수 있습니다.