Top Level View in MetricStore

Primary Presentation

flowchart TB
    subgraph "internal"
        direction TB
        subgraph metric_server
            direction TB
            view[[events]]
            service[[service]]
        end
    end

    subgraph "external"
        direction TB
        bolt[Bolt]
        metricflow[metricflow]
    end

    subgraph "legend"
        direction LR
        _internal[internal]
        _external[external]
        style _internal stroke:red;
        style _external stroke:blue;
    end
    
    metric_server --- | use |bolt
    view --- | use |service
    service --- | use | metricflow


    style internal stroke:red
    style external stroke:blue

Element Catalog

metric_server

슬랙 인터페이스는 이 모듈에서 구현된다. 사용자는 지표를 검색하고, 새로운 지표 검색 결과를 확인할 수 있다. 이 모듈은 슬래시 커맨드 입력을 받아 앱 메세지로 결과를 반환한다. 슬랙 앱에서발생하는 이벤트를 구독하기 위해 bolt 프레임워크를 사용한다.

비즈니스 로직은 이 모듈에서 구현되며 다음과 같은 기능을 제공한다.

bolt

bolt 는 슬랙 앱을 쉽게 빌드할 수 있는 프레임워크이다.

metricflow

metricflow 는 지표 정의를 쉽게 관리할 수 있는 시멘틱 레이어이다. 지표 정의들을 가져와 읽기 쉽고 재사용 가능한 SQL 을 생성한다.

Context Diagram

SDA - C&C View

Variability Guide

N/A

Rationale

bolt

Bolt 는 JavaScript, Python 또는 Java 로 Slack 앱을 개발하는 가장 빠른 방법이다. 일반적으로 슬랙에 사용되는 기능을 제공하며, 앱을 구축하는 데 도움이 되는 기능을 갖추고 있다. Slack 에서 공식으로 제공하는 프레임워크는 bolt 만 존재하고, 빠르고 편리하게 슬랙앱을 제공하고자 bolt 프레임워크를 선택했다.

제공하는 언어 중 Python 을 선택한 이유는 다음과 같다.

metricflow

metricflow 는 다음과 같은 이유로 선정했다.