Setup New Relic for monitoring AWS Beanstalk and Java Spring Boot

New Relic là một dịch vụ giúp bạn theo giõi tần suất hoạt động của máy chủ, cũng như theo giõi các ứng dụng được chạy trên máy chủ như Java, PHP, Ruby,… Chúng ta có thể theo giõi tổng quan mà không cần phải truy cập vào máy chủ để kiểm tra.

Ở bài viết này, mình sẽ hướng dẫn các bạn setup New Relic với máy chủ sử dụng dịch vụ AWS Beanstalk và ứng dụng đc viết bằng Java Spring Boot. Bắt đầu thôiiii.

1. Đăng kí tài khoản New Relic

Đăng kí tài khoản New Relic rất dễ dàng tại link sau: https://newrelic.com/signup

Sau khi đăng kí thằng công, màn hình hiển thị trang dashboard của hệ thống và chúng ta có thể bắt đầu setup

2. Tạo ứng dụng Java và cài đặt

2.1. Thông tin ứng dụng

Trên bảng stack, chọn ứng dụng Java và tiếp tục, sau đó chọn Don’t have access the host và chọn Java tại mục Connect your applications.

Ở bài viết này chúng ta đang thực hiện trên máy chủ AWS Beanstalk nên tôi sẽ chọn On a host. Sau đó nhập tên ứng dụng và làm các bước theo hướng dẫn.

Ở bước Tell us about your environment, tôi chọn running on Linux và framework là Spring Boot.

2.2. Cài đặt gói thư viện

Bước tiếp theo chúng ta cần tiến hành cài đặt gói thư viện. Bởi vì dùng AWS Beanstalk nên tôi sẽ thực hiện việc cài đặt trong folder .ebextension

Tạo file newrelic.config trong thư mục .ebextensions

ShellScript
commands:
  01-download-java-agent:
    command: "curl -O https://download.newrelic.com/newrelic/java-agent/newrelic-agent/current/newrelic-java.zip && mv newrelic-java.zip /var/newrelic-java.zip"
  02-unzip-java-agent:
    command: "unzip -o /var/newrelic-java.zip -d /var/"
  03-give-permissions-to-newrelic:
    command: "chmod a+rwx /var/newrelic"
  04-replace-license-key:
    command: "sed -i 's/<%= license_key %>/your_application_license_key/g' /var/newrelic/newrelic.yml"
  05-replace-application-name:
    command: "sed -i 's/My Application/your_application_license_key/g' /var/newrelic/newrelic.yml"
  06-enable-infras-and-logs-metric:
       command: "your_application_cmd_curl_infra"

Trong đó:

  • your_application_license_key: license_key của bạn.
  • your_application_license_key: Application name mà bạn đã đăng kí vơi new relic.
  • your_application_cmd_curl_infra: Command bạn nhận đc ở bước Connect your logs and infrastructure.

Nếu bạn chỉ muốn giám sát ứng dụng mà ko muốn giám sát Infras, bạn có thể bỏ qua bước 06-enable-infras-and-logs-metric. Nếu cài đặt hãy disable option Automatically answer “yes” to all install prompts. We’ll stop the installer if there’s an error. trên dashboard NewRelic

3. Deploy với CodeBuild và CodePipeline

Chúng ta cần tạo file Procfile trong folder root của source code để định nghĩa câu lệnh chạy ứng dụng java kèm theo NewRelic

Procfile:

ShellScript
web: java -javaagent:/var/newrelic/newrelic.jar -jar app.jar

Config sẽ không chạy nếu folder .ebextensions không được deploy lên Beanstalk. Dưới đây là file Buildspec của tôi

ShellScript
version: 0.2

phases:
  install:
    runtime-versions:
      java: corretto11
  build:
    commands:
      - mvn install
      - mv target/*.jar app.jar
artifacts:
  files:
    - Procfile
    - app.jar
    - .ebextensions/**/*

Cuối cùng sau khi deploy thành công, thực hiện Test Connection trên NewRelic để tạo ứng dụng:

4. Tổng kết

Còn 1 phần quan trọng mình chưa đến đó là chi phí, theo mình tìm hiểu NewRelic sẽ tính phía dựa trên dung lượng sử dụng trên hệ thống, chúng ta sẽ được miễn phí với 100GB/tháng

Trên đây là tổng hợp các bước setup NewRelic với ứng dụng Java chạy trên AWS Beanstalk của mình, hi vọng giúp ích mọi người.

Về những thông số và giá trị đem lại anh em hãy tự trải nghiệm và tận hưởng nheeeeeeeeé

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like