添加 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 组合在一起。这使您可以自动将 Oracle Container Engine for Kubernetes 部署作为组监视,而不是单个 pods 或容器,也可以将定制查询或标签设置为组节点。

下面是一个包含所有条目的示例 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")
}