Oracle Management Cloud 통합 추가
구성된 이미지를 Oracle 컨테이너 레지스트리 또는 다른 컨테이너 레지스트리로 업로드하고 배치 매니페스트를 생성하여 Kubernetes 클러스터에 애플리케이션을 배치할 수 있습니다. 분산 응용 프로그램이 준비되면 응용 프로그램을 모니터하고 종료 중인 인스턴스와 함께 생성된 새 인스턴스를 원활하게 추적할 수 있습니다.
Oracle Application Performance Monitoring 에이전트를 보다 단순하고 설명적인 이름으로 만들려면 Oracle Management Cloud에서 설치 프로그램을 다운로드하고 등록 키를 파일에 저장합니다.
Oracle Application Performance Monitoring 에이전트 바이너리 및 등록 키를 다운로드합니다.
- 에이전트 바이너리를 다운로드합니다. Oracle Management Cloud 콘솔에서 관리 > 에이전트 > 에이전트 다운로드 로 이동합니다.
- 등록 키 다운로드: Oracle Management Cloud 콘솔에서 관리 > 에이전트 > 등록 키 관리 로 이동합니다.
Oracle Management Cloud 설치 프로그램 이진 파일 및 등록 키를 gs-accessing-data-rest/complete/src/dist
디렉토리에 저장합니다(dist
디렉토리를 생성해야 함).
애플리케이션을 Oracle Management Cloud에 등록해야 합니다. Oracle Management Cloud 통합을 추가하려면 이진 파일을 얻고 Docker 이미지를 생성할 때 에이전트 설치를 수행합니다. 이렇게 하려면 gradle-docker-plugin
플러그인을 활용하여 생성 중인 Dockerfile에 추가 지침을 추가합니다.
build.gradle
파일에 다음을 추가합니다.
dockerCreateDockerfile {
instruction {'RUN unzip /omc-sample-app/*APM*.zip -d /omc-sample-app/omc'}
instruction {'COPY /omc-sample-app/registrationKey.txt /omc-sample-app/omc'}
instruction {'WORKDIR /omc-sample-app/omc'}
instruction {'RUN /bin/bash ProvisionApmJavaAsAgent.sh -d . -h do-not-use -no-wallet -no-prompt -regkey-file registrationKey.txt'}
instruction {'ENV APM_PROP_FILE=/omc-sample-app/omc/apmagent/config/AgentStartup.properties'}
instruction {'RUN echo "oracle.apmaas.agent.appServer.classifications=OMC_SAMPLE" >> ${APM_PROP_FILE}'}
environmentVariable('JAVA_OPTS', '${JAVA_OPTIONS} -javaagent:/omc-sample-app/omc/apmagent/lib/system/ApmAgentInstrumentation.jar')
}
코드 앞에 나오는 줄은 먼저 에이전트 JAR 파일을 추출하고 등록 키를 파일로 복사합니다. 그런 다음 코드가 ProvisionApmJavaAsAgent.sh
설치 프로그램을 실행합니다. 프로세스가 에이전트를 설치한 다음 이 컨테이너의 모든 인스턴스를 OMC_SAMPLE
분류에 그룹화하는 구성을 추가합니다. 마지막으로 코드는 javaagent
매개변수를 JAVA_OPTS
환경 변수에 추가합니다. 이 환경 변수를 통해 JVM이 시작될 때 사용되는 일부 옵션을 외부화할 수 있습니다. 여기에서 에이전트를 추가하는 데 사용됩니다.
이제 이 이미지를 사용하여 시작하는 모든 컨테이너는 에이전트가 자동으로 통합됩니다. 컨테이너가 시작되는 즉시 Oracle Management Cloud 형식으로 측정항목 보고를 시작합니다. 또한 추가한 분류를 사용하여 모든 인스턴스가 Oracle Management Cloud 단위로 그룹화됩니다. 이렇게 하면 개별 Pod 또는 컨테이너와는 반대로 Oracle Container Engine for Kubernetes 배치를 그룹으로 자동으로 모니터하거나 그룹 노드에 사용자정의 질의 또는 레이블을 설정할 수 있습니다.
모든 항목이 포함된 샘플 build.gradle
:
buildscript {
repositories {
mavenCentral()
maven {
url 'https://plugins.gradle.org/m2/'
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
classpath 'com.bmuschko:gradle-docker-plugin:4.3.0'
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'application'
apply plugin: 'com.bmuschko.docker-java-application'
mainClassName = 'hello.Application'
jar {
enabled = true
baseName = 'gs-accessing-data-rest'
version = '0.1.0'
}
bootJar {
baseName = 'gs-accessing-data-rest'
version = '0.1.0'
}
repositories {
mavenCentral()
jcenter()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
docker {
javaApplication {
baseImage = 'openjdk:8'
maintainer = 'Your Name "your.email@company.com"'
ports = [8080]
tag = 'region-code.ocir.io/my-tenant/my-repo/omc-sample-app:latest'
}
}
dockerCreateDockerfile {
instruction 'RUN unzip /omc-sample-app/*APM*.zip -d /omc-sample-app/omc'
instruction 'COPY /omc-sample-app/registrationKey.txt /omc-sample-app/omc'
instruction 'WORKDIR /omc-sample-app/omc'
instruction 'RUN /bin/bash ProvisionApmJavaAsAgent.sh -d . -h do-not-use -no-wallet -no-prompt -regkey-file registrationKey.txt'
instruction 'ENV APM_PROP_FILE=/omc-sample-app/omc/apmagent/config/AgentStartup.properties'
instruction 'RUN echo "oracle.apmaas.agent.appServer.classifications=OMC_SAMPLE" >> ${APM_PROP_FILE}'
environmentVariable 'JAVA_OPTS', '${JAVA_OPTIONS} -javaagent:/omc-sample-app/omc/apmagent/lib/system/ApmAgentInstrumentation.jar'
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-data-rest")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("com.h2database:h2")
testCompile("org.springframework.boot:spring-boot-starter-test")
}