Adicionar Integração do Oracle Management Cloud

Você pode fazer upload da imagem configurada para o Oracle Container Registry ou qualquer outro registro de contêiner e criar um manifesto de implantação para implantar a aplicação no seu cluster do Kubernetes. Quando tiver a aplicação distribuída pronta, você poderá monitorá-la e acompanhar, de forma integrada, as novas instâncias que foram criadas, bem como as instâncias que são desativadas.

Para tornar a instalação do agente Oracle Application Performance Monitoring mais simples e descritiva, faça download do instalador a partir do Oracle Management Cloud e salve a chave de registro em um arquivo.

Faça download dos binários do agente Oracle Application Performance Monitoring e da chave de registro:

  • Fazer download dos binários do agente: na console do Oracle Management Cloud, navegue até Administração > Agentes > Fazer Download dos Agentes .
  • Fazer download da chave de registro: na console do Oracle Management Cloud, navegue até Administração > Agentes > Gerenciar Chaves de Registro.

Salve os binários do instalador do Oracle Management Cloud e a chave de registro no diretório gs-accessing-data-rest/complete/src/dist (é necessário criar o diretório dist).

Você precisa registrar seus aplicativos no Oracle Management Cloud. Para adicionar a integração do Oracle Management Cloud, obtenha os binários e execute a instalação do agente no momento em que criar a imagem do Docker. Para fazer isso, você aproveita o plug-in do gradle-docker-plugin para adicionar mais instruções ao Dockerfile que está gerando.

Adicione o seguinte ao seu arquivo 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')
}

As linhas anteriores do código extraem primeiro o arquivo JAR do agente e copiam a chave de registro como um arquivo. Em seguida, o código executa o instalador, ProvisionApmJavaAsAgent.sh. O processo instala o agente e depois adiciona uma configuração para agrupar todas as instâncias desse container a uma classificação chamada OMC_SAMPLE. Por fim, o código adiciona o parâmetro javaagent à variável de ambiente JAVA_OPTS. Esta variável de ambiente permite externalizar algumas opções usadas quando a JVM é iniciada. Aqui, é usado para adicionar o agente.

Agora, cada contêiner que você inicializar usando esta imagem terá automaticamente o agente integrado a ela. Assim que o container for iniciado, ele iniciará As métricas de relatórios para o Oracle Management Cloud. Além disso, todas as instâncias serão agrupadas pelo Oracle Management Cloud usando a classificação que você adicionou. Isso permite monitorar automaticamente suas implantações do Oracle Container Engine for Kubernetes como um grupo, em oposição a pods ou contêineres individuais, ou configurar consultas ou rótulos personalizados para nós do grupo.

Aqui está uma amostra de build.gradle com todas as entradas:

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")
}