Ajouter une intégration Oracle Management Cloud

Vous pouvez télécharger l'image configurée vers Oracle Container Registry ou un autre registre de conteneurs, et créer un manifeste de déploiement pour déployer l'application vers le cluster Kubernetes. Une fois que l'application distribuée est prête, vous pouvez la surveiller et suivre facilement les nouvelles instances créées, ainsi que les instances arrêtées.

Pour que l'installation de l'agent Oracle Application Performance Monitoring soit plus simple et descriptive, téléchargez le programme d'installation à partir de Oracle Management Cloud et enregistrez la clé d'enregistrement dans un fichier.

Téléchargez les fichiers binaires de l'agent Oracle Application Performance Monitoring et la clé d'inscription :

  • Télécharger les fichiers binaires d'agent : à partir de la console Oracle Management Cloud, accédez à Administration > Agents > Télécharger des agents.
  • Téléchargez la clé d'inscription : à partir de la console Oracle Management Cloud, accédez à Administration > Agents > Gérer les clés d'inscription.

Enregistrez les fichiers binaires du programme d'installation Oracle Management Cloud et la clé d'inscription dans le répertoire gs-accessing-data-rest/complete/src/dist (vous devez créer le répertoire dist).

Vous devez enregistrer vos applications auprès de Oracle Management Cloud. Pour ajouter une intégration Oracle Management Cloud, obtenez les fichiers binaires et installez l'agent au moment de la création de l'image Docker. Pour ce faire, utilisez le module d'extension gradle-docker-plugin pour ajouter quelques instructions supplémentaires dans le fichier Dockerfile que vous générez.

Ajoutez ce qui suit à votre fichier 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')
}

Les lignes de code précédentes extraient d'abord le fichier JAR d'agent et copient la clé d'inscription en tant que fichier. Ensuite, le code exécute le programme d'installation, ProvisionApmJavaAsAgent.sh. Le processus installe l'agent, puis ajoute une configuration pour regrouper toutes les instances de ce conteneur à une classification appelée OMC_SAMPLE. Enfin, le code ajoute le paramètre javaagent à la variable d'environnement JAVA_OPTS. Cette variable d'environnement permet d'externaliser certaines options utilisées lors du démarrage de la JVM. Elle permet d'ajouter l'agent.

A présent, chaque conteneur que vous démarrez à l'aide de cette image a automatiquement intégré l'agent. Dès que le conteneur démarre, il démarre la génération d'états sur les métriques dans Oracle Management Cloud. En outre, toutes les instances seront regroupées par Oracle Management Cloud à l'aide de la classification que vous avez ajoutée. Vous pouvez ainsi surveiller automatiquement vos déploiements Oracle Container Engine for Kubernetes en tant que groupe, par opposition à des pods ou conteneurs individuels, ou configurer des requêtes ou des libellés personnalisés pour regrouper les noeuds.

Voici un exemple de build.gradle avec toutes les entrées :

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