어웨이크

이미지
어웨이크 | 박세니 이 책은 내안에 잠든 무한한 가능성을 깨우기 위해서 어떤 마음가짐과 행동을 가져야 하는지에 대해 서술한다. 가끔 내가 이루고자 하는 목표를 위해 열심히 달리다가도 무슨 부귀영화를 누리기 위해 이렇게 열심히 하는걸까 하고 현타가 올때가 있다. 그 때마다 이 책을 읽으며 지금 흘러가는 이 시간을 소중히 여기고 다시 힘을 내자고 다짐했다. 그리고 내가 사회에 영향을 끼칠만한 사람이 될 수 있을까, 내가 가진 능력에 비해 그런 목표는 욕심이 아닐까, 라는 생각을 할 때가 많았는데 이 책은 나 자신에 대한 믿음을 가지고 계속 나아가기 위한 동력을 만들어주었다. 자신이 하는 일에 대한 자부심과 긍지 그리고 확신을 품어야 성공할 수 있다. 이것이야말로 대단한 존재를 만드는 근원적 에너지다. 대부분의 사람은 자신이 하는 일에 대한 긍지를 갖추지 못한 채로 살고 있다. 그러다보니 남의 눈치를 보고 수동적이며 평범한 삶을 살게 된다. 나니까 할 수 있고, 나니까 가능한 것이며, 나만이 할 수 있는 것이라는 생각, 이런 생각들이 어린 시절부터 계속해서 쌓이고 쌓이다 보면 정말 그런 존재로 거듭나게 된다. 인간은 매 순간을 집중하고 몰입하면서 멋지고 의미있게 살아가야 하는 존재다. 스스로가 자신의 삶을 가치 있게 여기고 의미 있게 만들지 못한다면 우리의 삶은 무의미하고 우울하며 무기력해질 수밖에 없다. 모든 것은 자신의 마음이 만든다. 일체유심조의 정신으로 치열하고 후회 없는 삶을 만들기 위해 오늘도 한발 더 나아가야 한다. 삶이 끝나는 순간까지 고도의 집중과 몰입상태를 자신의 분야에서 더 멋있게 잘 만들어내기 위한 노력을 해야 한다. 그것이 우리가 진정으로 바라는 멋진 인생이다.

Spring Boot에 Datadog Metric 설정하기

현재 운영중인 서버의 특정 API에서 4xx에러가 지속적으로 발생하게 되었고, 버그를 수정하였지만 더이상 에러가 발생하지 않는지 monitoring을 할 필요가 있었다.
이미 monitoring tool로 Datadog를 사용중이었고, Datadog으로 custom metric을 설정할 수 있다는 것을 알아서 적용해보기로 하였다.

개발 환경

  • IDE: IntelliJ IDEA Ultimate
  • SpringBoot 2.0.4
  • Java8
  • Gradle

Dependency 추가

metric 설정을 위한 dependency 추가

build.gradle

dependencies {

    // DataDog
    compile group: 'com.ryantenney.metrics', name: 'metrics-spring', version: '3.1.3'
    compile group: 'org.coursera', name: 'dropwizard-metrics-datadog', version: '1.1.13'
}

Metric Config 설정 및 적용

MetricsConfig.java

Datadog으로 metric을 보낼 주기/값을 설정

@Configuration
@EnableMetrics
@Component
public class MetricsConfig extends MetricsConfigurerAdapter {

    @Value("${frequency:30}")
    private long frequency;

    @Value("${async.pool.frequency:10}")
    private long asyncPoolFrequency;

    private List<DatadogReporter.Expansion> expansions = Lists.newArrayList(
            COUNT, RATE_MEAN, RATE_1_MINUTE, MIN, MEAN, MAX, STD_DEV, MEDIAN, P75, P95, P98, P99, P999
    );

    @Override
    public void configureReporters(MetricRegistry metricRegistry) {
        registerReporter(DatadogReporter.forRegistry(metricRegistry)
                .withTransport(new UdpTransport.Builder().build())
                .withExpansions(Sets.newEnumSet(expansions, DatadogReporter.Expansion.class))
                .build())
                .start(frequency, TimeUnit.SECONDS);
    }
}

DatadogMetrics.java

Datadog으로 보낼 metric의 이름을 정의

public class DatadogMetrics {
    public static final String REGISTER_REQUEST                       = "register.request";
    public static final String REGISTER_REQUEST_COUNT           = "register.request.count";
    public static final String REGISTER_REQUEST_EXCEPTION     = "register.request.exception";
}


댓글