Aggiungi integrazione Oracle Management Cloud

È possibile caricare l'immagine configurata nel registro Oracle Container o in qualsiasi altro registro contenitore e creare un file manifest di distribuzione per distribuire l'applicazione nel cluster Kubernetes. Una volta pronta l'applicazione distribuita, è possibile monitorarla e tenere traccia con facilità delle nuove istanze create e delle istanze chiuse.

Per rendere più semplice e descrittivo l'installazione dell'agente Oracle Application Performance Monitoring, scaricare l'Installer da Oracle Management Cloud e salvare la chiave di registrazione in un file.

Scaricare i file binari dell'agente Oracle Application Performance Monitoring e la chiave di registrazione:

  • Scaricare i file binari dell'agente: dalla console di Oracle Management Cloud, passare ad Amministrazione > Agenti > Scarica agenti .
  • Scaricare la chiave di registrazione: dalla console di Oracle Management Cloud, passare ad Amministrazione > Agenti > Gestisci chiavi di registrazione.

Salvare i file binari dell'Installer di Oracle Management Cloud e la chiave di registrazione nella directory gs-accessing-data-rest/complete/src/dist (è necessario creare la directory dist).

È necessario registrare le applicazioni con Oracle Management Cloud. Per aggiungere l'integrazione Oracle Management Cloud, ottenere i file binari ed eseguire l'installazione dell'agente al momento della creazione dell'immagine Docker. A tale scopo, è possibile utilizzare il plugin gradle-docker-plugin per aggiungere alcune istruzioni al file Dockerfile che si sta generando.

Aggiungere quanto segue al file 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')
}

Le righe precedenti del codice estraggono prima il file JAR dell'agente e copiano la chiave di registrazione come file. Il codice esegue quindi l'Installer, ProvisionApmJavaAsAgent.sh. Il processo installa l'agente e aggiunge una configurazione per raggruppare tutte le istanze del contenitore in una classificazione denominata OMC_SAMPLE. Infine, il codice aggiunge il parametro javaagent alla variabile di ambiente JAVA_OPTS. Questa variabile di ambiente consente di esternalizzare alcune opzioni utilizzate all'avvio della JVM. Viene utilizzato per aggiungere l'agente.

Ora ogni contenitore che si avvia utilizzando questa immagine viene integrato in modo automatico nell'agente. Non appena il contenitore viene avviato, avvia le metriche di reporting a Oracle Management Cloud. Inoltre, tutte le istanze verranno raggruppate insieme da Oracle Management Cloud utilizzando la classificazione aggiunta. Ciò consente di monitorare in modo automatico le distribuzioni di Oracle Container Engine for Kubernetes come gruppo rispetto ai singoli pod o contenitori oppure di impostare query o etichette personalizzate sui nodi di gruppo.

Di seguito è riportato un esempio di build.gradle con tutte le voci.

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