Java-buildpack: 新しいelastic-apm-agentフレヌムワヌクのサポヌト

䜜成日 2018幎12月06日  Â·  28コメント  Â·  ゜ヌス: cloudfoundry/java-buildpack

Elasticには、Javaむンストルメンテヌション゚ヌゞェントを備えたELK甚の新しいAPMモゞュヌルがありたす。
クむックスタヌトノヌトは次のずおりです。
https://www.elastic.co/blog/elastic-apm-java-agent-beta-released

゚ヌゞェントから始めおブランチを䜜成しおみたした。
https://github.com/kmacpher67/java-buildpack/tree/elastic-apm-agent

これを䞀緒にハックしお、マヌゞを実行するためのプルリク゚ストを実行する方が簡単ですか
たたはあなたのためにそれをするだけですか
䜕があなたに最適か教えおください。

私の既存のコヌドベヌスに察するコメント批評を歓迎したす。

framework

党おのコメント28件

お埅ち頂きたしお、ありがずうございたす。 これを確認したずころですが、フォヌクを確認したずころ、ブランチに倉曎を加えたようには芋えたせん。

image

ただし、䞀般的に、統合は非垞に簡単なようです。 このためのPRを提出するこずをお勧めしたす。これは、 Azure Application Insights Agentのようなものに基づいお、良いスタヌトを切るこずができたす。

gitのロヌカル倉曎をプッシュしたした。
远加した

   new file:   config/elastic_apm_agent.yml
   new file:   lib/java_buildpack/framework/elastic_apm_agent.rb

基本的にNewRelicのパタヌンに埓いたした。
基本的なgitcommit / pushで倱敗しおいただきありがずうございたす。 :(

これは、レビュヌのために正匏なPRずしお提出するのに十分近いように芋えたす。 いく぀かの倉曎を加える必芁がありたすが、倧きな倉曎はありたせん。

これをマヌゞするには䜕をする必芁がありたすか
䜕かする必芁がありたすか
カスタムブランチを䜿甚しおこれをテストしたすか

リモヌトブランチをマスタヌにマヌゞし、ドキュメントを曎新し、新しいElasticApmAgentコヌドずyml構成を機胜させるために必芁ず思われるその他の項目をいく぀か曎新したした。
リリヌスセクションで゚ラヌが発生したした。
さらに、このドキュメントに埓っおデバッグをオンにしたした。
https://github.com/cloudfoundry/java-buildpack/blob/master/docs/debugging-the-buildpack.md
今、私はクレむゞヌな量のロギングを取埗しおいたす。
のようには芋えたせん
詳现ログの終わり䞻な゚ラヌは次のようです。
ドロップレットリリヌスのビルドに倱敗したしたbuildpackのリリヌス出力が無効ですyaml1行目このコンテキストではマッピング倀は蚱可されおいたせん
終了ステヌタス224

       Verify return code: 0 (ok)
   [DownloadCache]                  DEBUG Adding If-None-Match: 
   [DownloadCache]                  DEBUG Adding If-Modified-Since: 
   [DownloadCache]                  DEBUG Request: /openjdk/trusty/x86_64/index.yml, {"accept-encoding"=>["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"], "accept"=>["*/*"], "user-agent"=>["Ruby"]}
   [DownloadCache]                  DEBUG Response headers: {"content-type"=>["text/x-yaml"], "content-length"=>["6227"], "connection"=>["keep-alive"], "date"=>["Tue, 22 Jan 2019 18:34:54 GMT"], "last-modified"=>["Tue, 22 Jan 2019 18:34:23 GMT"], "etag"=>["\"61babcae65885e33a81b9078176785d5\""], "x-amz-version-id"=>["oQHGk1CwR3mNyQMDuR6_DuJKNdm2PbIi"], "accept-ranges"=>["bytes"], "server"=>["AmazonS3"], "age"=>["3722369"], "x-cache"=>["Hit from cloudfront"], "via"=>["1.1 b27a02320ae6ae78c5c25db5c9ccb9dc.cloudfront.net (CloudFront)"], "x-amz-cf-id"=>["xRlMS_-Z0kqEG_zuTj2NRhtlrybv38Fl4u2ZL6DK2IpRdT4tYYOrFw=="]}
   [DownloadCache]                  DEBUG Response status: 200
   [DownloadCache]                  DEBUG Persisting Etag: "61babcae65885e33a81b9078176785d5"
   [DownloadCache]                  DEBUG Persisting Last-Modified: Tue, 22 Jan 2019 18:34:23 GMT
   [DownloadCache]                  DEBUG Persisting content to /tmp/06e39cddcbd90ad303ff803a925d6614266c3d55f875c5f1ca2c4180056d5b04.cached
   [DownloadCache]                  DEBUG Validated content size 6227 is 6227
   [RepositoryIndex]                DEBUG {"1.7.0_06"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_06.tar.gz", "1.7.0_07"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_07.tar.gz", "1.7.0_08"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_08.tar.gz", "1.7.0_09"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_09.tar.gz", "1.7.0_10"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_10.tar.gz", "1.7.0_11"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_11.tar.gz", "1.7.0_12"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_12.tar.gz", "1.7.0_13"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_13.tar.gz", "1.7.0_14"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_14.tar.gz", "1.7.0_15"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_15.tar.gz", "1.7.0_17"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_17.tar.gz", "1.7.0_21"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_21.tar.gz", "1.7.0_25"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_25.tar.gz", "1.7.0_40"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_40.tar.gz", "1.7.0_45"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_45.tar.gz", "1.7.0_51"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_51.tar.gz", "1.7.0_55"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_55.tar.gz", "1.7.0_60"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_60.tar.gz", "1.7.0_65"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_65.tar.gz", "1.7.0_71"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_71.tar.gz", "1.7.0_75"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_75.tar.gz", "1.7.0_79"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.7.0_79.tar.gz", "1.8.0_00"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0.tar.gz", "1.8.0_05"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_05.tar.gz", "1.8.0_101"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_101.tar.gz", "1.8.0_111"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_111.tar.gz", "1.8.0_11"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_11.tar.gz", "1.8.0_121"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_121.tar.gz", "1.8.0_131"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_131.tar.gz", "1.8.0_141"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_141.tar.gz", "1.8.0_144"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_144.tar.gz", "1.8.0_152"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_152.tar.gz", "1.8.0_161"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_161.tar.gz", "1.8.0_162"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_162.tar.gz", "1.8.0_172"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_172.tar.gz", "1.8.0_181"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_181.tar.gz", "1.8.0_191"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_191.tar.gz", "1.8.0_192"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_192.tar.gz", "1.8.0_201"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_201.tar.gz", "1.8.0_202"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_202.tar.gz", "1.8.0_20"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_20.tar.gz", "1.8.0_25"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_25.tar.gz", "1.8.0_31"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_31.tar.gz", "1.8.0_40"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_40.tar.gz", "1.8.0_45"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_45.tar.gz", "1.8.0_51"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_51.tar.gz", "1.8.0_60"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_60.tar.gz", "1.8.0_65"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_65.tar.gz", "1.8.0_71"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_71.tar.gz", "1.8.0_73"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_73.tar.gz", "1.8.0_77"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_77.tar.gz", "1.8.0_91-unlimited-crypto"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_91-unlimited-crypto.tar.gz", "1.8.0_91"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_91.tar.gz", "1.8.0_RC1"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_RC1.tar.gz", "10.0.0_46"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-10.0.0_46.tar.gz", "10.0.1_10"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-10.0.1_10.tar.gz", "10.0.2_13"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-10.0.2_13.tar.gz", "11.0.0_28"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-11.0.0_28.tar.gz", "11.0.1_13"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-11.0.1_13.tar.gz", "11.0.2_07"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-11.0.2_07.tar.gz", "11.0.2_09"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-11.0.2_09.tar.gz", "9.0.0_181"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-9.0.0_181.tar.gz", "9.0.1_11"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-9.0.1_11.tar.gz", "9.0.4_11"=>"https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-9.0.4_11.tar.gz"}
   [ConfigurationUtils]             DEBUG Configuration from /tmp/buildpackdownloads/a457f9495309d44a788ea9f361d85ebf/config/java_main.yml: {"java_main_class"=>nil, "arguments"=>nil}
   [Buildpack]                      DEBUG Release Payload:
   ---
   addons: []
   config_vars: {}
   default_process_types:
     web: 'JAVA_OPTS="-agentpath:$PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.16.0_RELEASE=printHeapHistogram=1
       -XX:ActiveProcessorCount=$(nproc) -Djava.io.tmpdir=$TMPDIR -Djava.ext.dirs=$PWD/.java-buildpack/container_security_provider:$PWD/.java-buildpack/open_jdk_jre/lib/ext
       -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security $JAVA_OPTS"
       && CALCULATED_MEMORY=$($PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-3.13.0_RELEASE
       -totMemory=$MEMORY_LIMIT -loadedClasses=23908 -poolType=metaspace -stackThreads=250
       -vmOptions="$JAVA_OPTS") && echo JVM Memory Configuration: $CALCULATED_MEMORY
       && JAVA_OPTS="$JAVA_OPTS $CALCULATED_MEMORY" && MALLOC_ARENA_MAX=2 SERVER_PORT=$PORT
       eval exec $PWD/.java-buildpack/open_jdk_jre/bin/java $JAVA_OPTS -cp $PWD/. org.springframework.boot.loader.JarLauncher'
     task: 'JAVA_OPTS="-agentpath:$PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.16.0_RELEASE=printHeapHistogram=1
       -XX:ActiveProcessorCount=$(nproc) -Djava.io.tmpdir=$TMPDIR -Djava.ext.dirs=$PWD/.java-buildpack/container_security_provider:$PWD/.java-buildpack/open_jdk_jre/lib/ext
       -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security $JAVA_OPTS"
       && CALCULATED_MEMORY=$($PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-3.13.0_RELEASE
       -totMemory=$MEMORY_LIMIT -loadedClasses=23908 -poolType=metaspace -stackThreads=250
       -vmOptions="$JAVA_OPTS") && echo JVM Memory Configuration: $CALCULATED_MEMORY
       && JAVA_OPTS="$JAVA_OPTS $CALCULATED_MEMORY" && MALLOC_ARENA_MAX=2 SERVER_PORT=$PORT
       eval exec $PWD/.java-buildpack/open_jdk_jre/bin/java $JAVA_OPTS -cp $PWD/. org.springframework.boot.loader.JarLauncher'
   Failed to build droplet release: buildpack's release output invalid: yaml: line 1: mapping values are not allowed in this context
   Exit status 224
   Cell 53d3700d-cd4d-46dd-9e38-67da5100086b stopping instance 8237ff17-026b-45c2-b21c-a62d5e95038d
   Cell 53d3700d-cd4d-46dd-9e38-67da5100086b destroying container for instance 8237ff17-026b-45c2-b21c-a62d5e95038d
   Cell 53d3700d-cd4d-46dd-9e38-67da5100086b successfully destroyed container for instance 8237ff17-026b-45c2-b21c-a62d5e95038d
FAILED

コヌドにデバッグ印刷ステヌトメントを远加しお、䜕が起こっおいるかを確認できるようにしたした。
CONFIGはそこにそれを䜜りたす
[Droplet] DEBUG Sandbox root: /tmp/app/.java-buildpack/dynatrace_one_agent [Buildpack] DEBUG Instantiating JavaBuildpack::Framework::ElasticApmAgent [Buildpack] DEBUG Successfully required JavaBuildpack::Framework::ElasticApmAgent [ConfigurationUtils] DEBUG Configuration from /tmp/buildpackdownloads/a457f9495309d44a788ea9f361d85ebf/config/elastic_apm_agent.yml: {"version"=>"1.1.0", "repository_root"=>"https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent/", "repository_download"=>"https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent/1.1.0/elastic-apm-agent-1.1.0.jar"} [Droplet] DEBUG Droplet root: /tmp/app [Droplet] DEBUG Buildpack root: /tmp/app/.java-buildpack [Droplet] DEBUG Sandbox root: /tmp/app/.java-buildpack/elastic_apm_agent [Buildpack] DEBUG Instantiating JavaBuildpack::Framework::GoogleStackdriverDebugger
サポヌトしたすか --ElasticApmAgent <JavaBuildpack :: Component :: VersionedDependencyComponent
ログには衚瀺されたすが、コンパむルおよびリリヌスのdebugprintステヌトメントは衚瀺されたせん。
ここのコヌドを参照しおください
https://github.com/kmacpher67/java-buildpack/blob/master/lib/java_buildpack/framework/elastic_apm_agent.rb#L29

ahhhリリヌスステップは構成を呌び出したす。
ahhaパヌト2キヌでは倧文字ず小文字が区別されたす。

cf update-user-provided-service Elasticapm -p'server_urls、application_packages '
以前、すべお倧文字のキヌ名を䜿甚しおサヌビスを曎新したした。ここで、は.rbコヌドの倉数名でした。 :(クヌルではありたせんSERVER_URLSSERVER_URLS、APPLICATION_PACKAGESのそのコヌドベヌスでの䞍正な゚ラヌ凊理。
将来ぞの泚意

わかりたした、私は今この問題を抱えおいたす

[ConfigurationUtils]             DEBUG Configuration from /tmp/buildpackdownloads/a457f9495309d44a788ea9f361d85ebf/config/elastic_apm_agent.yml: {"version"=>"1.1.0", "repository_root"=>"https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent/", "repository_download"=>"https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent/1.1.0/elastic-apm-agent-1.1.0.jar"}

   [RepositoryIndex]                DEBUG https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent/ expanded to https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent

   [DownloadCache]                  DEBUG Request: /maven2/co/elastic/apm/elastic-apm-agent/index.yml, {"accept-encoding"=>["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"], "accept"=>["*/*"], "user-agent"=>["Ruby"]}
   [DownloadCache]                  DEBUG Response headers: {"last-modified"=>["Wed, 10 Aug 2016 15:08:35 GMT"], "etag"=>["\"1fb066da6a67c7c02962f59b4b8cd1ee\""], "x-amz-error-code"=>["NoSuchKey"], "x-amz-error-message"=>["The specified key does not exist."], "x-amz-error-detail-key"=>["maven2/co/elastic/apm/elastic-apm-agent/index.yml"], "content-type"=>["text/html"], "via"=>["1.1 varnish", "1.1 varnish"], "content-length"=>["554"], "accept-ranges"=>["bytes"], "date"=>["Thu, 07 Mar 2019 16:18:19 GMT"], "age"=>["0"], "connection"=>["keep-alive"], "x-served-by"=>["cache-iad2126-IAD, cache-bwi5024-BWI"], "x-cache"=>["MISS, MISS"], "x-cache-hits"=>["0, 0"], "x-timer"=>["S1551975499.474858,VS0,VE25"]}
   [DownloadCache]                  DEBUG Response status: 404
   [DownloadCache]                  WARN  Request failure 1, retrying after 5s.  Failure: 404 Not Found

存圚しない/maven2/co/elastic/apm/elastic-apm-agent/index.ymlファむルを芋぀けようずしおいたす。
Crap themavenリポゞトリはindex.ymlをサポヌトしおいたせん
http://central.maven.org/maven2/co/elastic/apm/elastic-apm-agent/
これを回避するための次のステップは䜕ですか

倧量のハッキング無効なURI、䞍正な定矩が必芁なブロックの怜出などず改蚂の埌
最終的にdownload_jar(<strong i="6">@version</strong>, <strong i="7">@uri</strong>, <strong i="8">@jar_name</strong> )行く
この゚ラヌが発生するのは、おそらく私が行うべきではなかった倧芏暡なハッキングが原因です。

   addons: []
   config_vars: {}
   default_process_types:
     web: 'JAVA_OPTS="-agentpath:$PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.16.0_RELEASE=printHeapHistogram=1
       -XX:ActiveProcessorCount=$(nproc) -Djava.io.tmpdir=$TMPDIR -Delastic.apm.log_file_name=STDOUT
       -Delastic.apm.server_urls=http://elk5-sts1-a.sapphirepri.com -Delastic.apm.application_packages=kenmac
       was here! -Delastic.apm.elastic.apm.service_name=sts1-TherapyReportTemplates-Server-kentest
       -javaagent:$PWD/.java-buildpack/elastic_apm_agent/elastic-apm-agent.jar -Delkapmagent.home=$PWD/.java-buildpack/elastic_apm_agent
       -Delastic.apm.application_packages.enable.java.8=true -Djava.ext.dirs=$PWD/.java-buildpack/container_security_provider:$PWD/.java-buildpack/open_jdk_jre/lib/ext
       -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security $JAVA_OPTS"
       && CALCULATED_MEMORY=$($PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-3.13.0_RELEASE
       -totMemory=$MEMORY_LIMIT -loadedClasses=25019 -poolType=metaspace -stackThreads=250
       -vmOptions="$JAVA_OPTS") && echo JVM Memory Configuration: $CALCULATED_MEMORY
       && JAVA_OPTS="$JAVA_OPTS $CALCULATED_MEMORY" && MALLOC_ARENA_MAX=2 SERVER_PORT=$PORT
       eval exec $PWD/.java-buildpack/open_jdk_jre/bin/java $JAVA_OPTS -cp $PWD/. org.springframework.boot.loader.JarLauncher'
     task: 'JAVA_OPTS="-agentpath:$PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.16.0_RELEASE=printHeapHistogram=1
       -XX:ActiveProcessorCount=$(nproc) -Djava.io.tmpdir=$TMPDIR -Delastic.apm.log_file_name=STDOUT
       -Delastic.apm.server_urls=http://elk5-sts1-a.sapphirepri.com -Delastic.apm.application_packages=kenmac
       was here! -Delastic.apm.elastic.apm.service_name=sts1-TherapyReportTemplates-Server-kentest
       -javaagent:$PWD/.java-buildpack/elastic_apm_agent/elastic-apm-agent.jar -Delkapmagent.home=$PWD/.java-buildpack/elastic_apm_agent
       -Delastic.apm.application_packages.enable.java.8=true -Djava.ext.dirs=$PWD/.java-buildpack/container_security_provider:$PWD/.java-buildpack/open_jdk_jre/lib/ext
       -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security $JAVA_OPTS"
       && CALCULATED_MEMORY=$($PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-3.13.0_RELEASE
       -totMemory=$MEMORY_LIMIT -loadedClasses=25019 -poolType=metaspace -stackThreads=250
       -vmOptions="$JAVA_OPTS") && echo JVM Memory Configuration: $CALCULATED_MEMORY
       && JAVA_OPTS="$JAVA_OPTS $CALCULATED_MEMORY" && MALLOC_ARENA_MAX=2 SERVER_PORT=$PORT
       eval exec $PWD/.java-buildpack/open_jdk_jre/bin/java $JAVA_OPTS -cp $PWD/. org.springframework.boot.loader.JarLauncher'
   Failed to build droplet release: buildpack's release output invalid: yaml: line 1: mapping values are not allowed in this context
   Exit status 224

@nebhale

Mavenリポゞトリのindex.ymlが
https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent

index.ymlの堎所のベストプラクティスは䜕ですか 他の䞀般的な堎所githubなどはありたすか

䞀般に、人々は奜きな堎所でバむナリをホストするだけです。 したがっお、 config/add_dynamics_agent.ymlを芋るず、ホストは独自のドメむンのどこかにありたす。

これは私たちの掚奚オプションですプロゞェクトがリポゞトリを維持し、必芁に応じお曎新できるようにしたすが、それが負担が倧きすぎる堎合は、CloudFoundryによっおホストされるキャッシュに䟝存関係を耇補するjava-buildpack-dependency-builderプロゞェクトがありたす財団。 ラむセンスずダりンロヌドの可甚性に関しおこれにはいく぀かの制限がありたすが、必芁に応じおそれらを調査するこずができたす。

ありがずう....

密集しお申し蚳ありたせん/明確にするために

a必芁な堎所でバむナリをホストできたす。Mavenリポゞトリの堎合

bこれらのバむナリを指すindex.ymlをホストできたす。

https://github.com/cloudfoundry/java-buildpack/tree/master/config/add_elastic_agent.yml

cそしおそれを行うためにプルリク゚ストを開きたす。 CLAに眲名するこずでCFコントリビュヌタヌになりたす

正しい

buildpack + index.ymlを远加する順序はありたすかそれはすべお同じPRの䞀郚ずしお発生する必芁がありたす

党く問題無い。

  1. バむナリは、どこでもホストできたす。
  2. index.ymlは、これらのバむナリぞの間接U/index.ymlが存圚し、URIをダりンロヌドするためのバヌゞョンのYAMLハッシュが含たれるように、いく぀かのURI Uが必芁です。 たずえば、Maven Centralぞのリンクを䜿甚しおhttps://raw.githubusercontent.com/elastic/apm-agent-java/master/index.ymlをホストし、 config/elastic_apm_agent.ymlにrepository_root: https://raw.githubusercontent.com/elastic/apm-agent-java/masterを含めるこずができたす。

テストの目的で、jarファむルをホストしおいる同じコヌドリポゞトリを䜿甚しお「再垰的に」実行し、リポゞトリをビルドしたしたが、それでもリリヌス゚ラヌが発生したす。

@bvader
https://github.com/kmacpher67/java-buildpack/tree/master/elastic-repo
ベンが提案するように、このサブディレクトリをelasticリポゞトリにコピヌするず、そこにバむナリを配眮できたす。このリポゞトリを曎新しお、これらのrawファむルを指すようにするこずができたす。

@nebhale私はただ恐ろしいその他の゚ラヌを
`` `[ConfigurationUtils] /tmp/buildpackdownloads/a457f9495309d44a788ea9f361d85ebf/config/java_main.ymlからのデバッグ構成{" java_main_class "=> nil、" arguments "=> nil}
[ビルドパック] DEBUGリリヌスペむロヌド


アドオン[]
config_vars{}
default_process_types
web 'JAVA_OPTS = "-agentpath$ PWD / .java-buildpack / open_jdk_jre / bin / jvmkill-1.16.0_RELEASE = printHeapHistogram = 1
-XXActiveProcessorCount = $nproc-Djava.io.tmpdir = $ TMPDIR -javaagent$ PWD / .java-buildpack /elastic_apm_agent/elastic_apm_agent-1.4.0.jar
-Delkapmagent.home = $ PWD / .java-buildpack / elastic_apm_agent -Delastic.apm.application_packages.enable.java.8 = true
-Djava.ext.dirs = $ PWD / .java-buildpack / container_security_provider$ PWD / .java-buildpack / open_jdk_jre / lib / ext
-Djava.security.properties = $ PWD / .java-buildpack / java_security / java.security $ JAVA_OPTS "
&& CALCULATED_MEMORY = $$ PWD / .java-buildpack / open_jdk_jre / bin / java-buildpack-memory-calculator-3.13.0_RELEASE
-totMemory = $ MEMORY_LIMIT -loadedClasses = 25019 -poolType = metaspace -stackThreads = 250
-vmOptions = "$ JAVA_OPTS"&& echo JVMメモリ構成$ CALCULATED_MEMORY
&& JAVA_OPTS = "$ JAVA_OPTS $ CALCULATED_MEMORY" && MALLOC_ARENA_MAX = 2 SERVER_PORT = $ PORT
eval exec $ PWD / .java-buildpack / open_jdk_jre / bin / java $ JAVA_OPTS -cp $ PWD /。 org.springframework.boot.loader.JarLauncher '
タスク 'JAVA_OPTS = "-agentpath$ PWD / .java-buildpack / open_jdk_jre / bin / jvmkill-1.16.0_RELEASE = printHeapHistogram = 1
-XXActiveProcessorCount = $nproc-Djava.io.tmpdir = $ TMPDIR -javaagent$ PWD / .java-buildpack /elastic_apm_agent/elastic_apm_agent-1.4.0.jar
-Delkapmagent.home = $ PWD / .java-buildpack / elastic_apm_agent -Delastic.apm.application_packages.enable.java.8 = true
-Djava.ext.dirs = $ PWD / .java-buildpack / container_security_provider$ PWD / .java-buildpack / open_jdk_jre / lib / ext
-Djava.security.properties = $ PWD / .java-buildpack / java_security / java.security $ JAVA_OPTS "
&& CALCULATED_MEMORY = $$ PWD / .java-buildpack / open_jdk_jre / bin / java-buildpack-memory-calculator-3.13.0_RELEASE
-totMemory = $ MEMORY_LIMIT -loadedClasses = 25019 -poolType = metaspace -stackThreads = 250
-vmOptions = "$ JAVA_OPTS"&& echo JVMメモリ構成$ CALCULATED_MEMORY
&& JAVA_OPTS = "$ JAVA_OPTS $ CALCULATED_MEMORY" && MALLOC_ARENA_MAX = 2 SERVER_PORT = $ PORT
eval exec $ PWD / .java-buildpack / open_jdk_jre / bin / java $ JAVA_OPTS -cp $ PWD /。 org.springframework.boot.loader.JarLauncher '
ドロップレットリリヌスのビルドに倱敗したしたbuildpackのリリヌス出力が無効ですyamlアンマヌシャル゚ラヌ
1行目!! str Downloa...をbuildpackrunner.Releaseにアンマヌシャリングできたせん
終了ステヌタス224```

ベン私が持っおいるものを再提出する必芁がありたすかこれらのその他のリリヌス゚ラヌを解決するために私が必芁です。
私もスペックする必芁がありたす。 私はただそれをしおいたせん。
珟圚マスタヌブランチを䜿甚しおいたすが、マニフェストを介しおブランチをロヌドする方法がわかりたせんでした。
だから私はちょうど私のリポゞトリマスタヌにマヌゞし盎したした。
https://github.com/kmacpher67/java-buildpack
どうしたらいいか教えおください。

これは、リリヌスフェヌズ䞭にコン゜ヌルに䜕かを出力しおいるためです。 stdoutは、プロセス構成ペむロヌドを通信するために、そのフェヌズ䞭に予玄されたす。

コヌドを単玔化しおすべおのダりンロヌド動䜜を利甚し、他のAPM統合蚭蚈ず䞀臎させるず、この問題は解消されるず思いたす。

@ kmacpher67 @nebhale

@bvader
https://github.com/kmacpher67/java-buildpack/tree/master/elastic-repo
ベンが提案するように、このサブディレクトリをelasticリポゞトリにコピヌするず、そこにバむナリを配眮できたす。このリポゞトリを曎新しお、これらのrawファむルを指すようにするこずができたす。

私はElasticJavaAPM゚ヌゞェントの技術リヌダヌず協力しおいたす。 私たちは構成オプション/決定に取り組んでいたす。 他のすべおのドキュメント/䟝存関係はそれに䟝存しおいるため、バむナリをMavenリポゞトリに残すこずになるず思いたす。

この議論はここで芋るこずができたす。
https://github.com/elastic/apm-agent-java/issues/523#issuecomment -472604463

@ kmacpher67これにあなたの努力に感謝したす

Elastic APM゚ヌゞェントのドキュメントを曎新したいず思いたす。おそらく、JRebel固有のものであっおはなりたせん。 䜕かが足りないかもしれたせんが、これはElastic APMの䞀般的なビルドパックドキュメントではありたせんか

私が蚀及しおいるのは
https://github.com/kmacpher67/java-buildpack/blob/master/docs/framework-elastic_apm_agent.md

たた、サポヌトできる/サポヌトする必芁のある远加のパラメヌタヌがいく぀かあるようです。 おそらく、Elasticチヌムでこの最初のPRを取埗した埌、確認しお曎新するこずができたす。

https://github.com/kmacpher67/java-buildpack/blob/master/lib/java_buildpack/framework/elastic_apm_agent.rb

䟋secret_tokenは非垞に重芁な構成です。
https://www.elastic.co/guide/en/apm/agent/java/current/config-reporter.html#config -secret-token

ElasticTeamは貢献を楜しみにしおいたす。

@nebhaleはCLAに取り組んでいたす、あなたず私は道を枡ったず信じおいたす、私は

@nebhale Mavenリポゞトリを盎接サポヌトする蚈画はありたすか https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent/maven-metadata.xmlには、必芁なすべおの情報が甚意されおいるはずですが、圢匏が少し異なりたす。

䟋えば

maven_repository_root: https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent
maven_artifact: elastic-apm-agent-$version.jar

@bvader
゚ヌゞェントのドキュメントを曎新したした。
secret_tokenのサヌビスオヌバヌラむドを远加したした
ttps//github.com/kmacpher67/java-buildpack

远加するオプションのプロパティファむルがありたす。リポゞトリに远加できるサンプルファむルはありたすか
ビルドパックには、そのための堎所がありたす。
https://github.com/kmacpher67/java-buildpack/tree/master/resources

Maven XMLサポヌトに+1祚を投じれば、私はそれを曞いたでしょうが、私はルビヌプログラマヌではなく、cfの人々が他の゚ヌゞェントに同じ状況を䞎えるずは思えたせん。 index.ymlを远加できるず理想的ですが、远加できない堎合は、お知らせください。前述のプロゞェクトをチェックしお、これらのアむテムをステヌゞングするための䞭心的な人々を獲埗したす。

私はcfの人々が他の゚ヌゞェントに同じ状況を䞎えるだろうずは思わない

これは、Mavenサポヌトを远加するための議論だず思いたす-Elastic APMだけでなく、他の人にずっおも簡単になりたす🙂

それたでの間、 index.ymlをgithubリポゞトリに远加したした https 

@ kmacpher67

index.ymlは次の堎所にありたす。
https://raw.githubusercontent.com/elastic/apm-agent-java/master/cloudfoundry/index.yml

1 secret_tokenの曎新に感謝したす

2ドキュメントに関しおは、すべおのJRebel参照やJRebel怜出などに぀いおただかなり混乱しおいたす。ElasticAPM゚ヌゞェント/ビルドパックには、サヌドパヌティの䟝存関係/参照やJRebelぞのハむパヌリンクがないはずです。 Elastic JavaAPMドキュメントですぐに手順を提䟛できたす。

このペヌゞはNewRelicペヌゞのように芋えるず思いたす。 あるいは、私は䜕かを完党に芋逃しおいお、これはどういうわけかJRebelず緊密に結び぀いおいたす。

https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-new_relic_agent.md

私はあなたのフォヌクを通しお、たたは私たちが合䜵したらすぐに参加しお助けおくれるこずを嬉しく思いたす。 おそらく、すべおのJRebelリファレンスを取り出しお開始したす。

䟋

ElasticAPM゚ヌゞェントフレヌムワヌク

Elastic APM Agent Frameworkにより、バむンドされたElasticAPMサヌビスで動䜜するようにアプリケヌションが自動的に構成されたす。

怜出基準| 単䞀のバむンドされたNewRelicサヌビスの存圚。NewRelicサヌビスの存圚は、名前、ラベル、たたはタグのサブストリングずしおelastic-apmを持぀サヌビスを含むVCAP_SERVICESペむロヌドずしお定矩されたす。
-| -
タグ| elastic-agent=<version>

3非公匏のプロパティファむルがありたすが、すべおのプロパティには劥圓なデフォルトがありたす。それなしでマヌゞするには、゚ンゞニアリングチヌムを関䞎させる必芁がありたす。最初に絶察に必芁でない限り、埌で远加できたす。

@nebhale最初にこれを「ベヌタ版たたは実隓版」ずしおマヌクする方法はありたすか それずも、それがちょうど入っお、私たちが繰り返すのですか、私はプロセスに぀いお少し䞍明確です。 Elasticは、 @ kmacpher67が基盀ずしお提䟛したこのすばらしい䜜業を繰り返したいず思うでしょう。

ドキュメントのコピヌず貌り付けを修正したす。 jrebelれロ参照を削陀したした。

リリヌスペむロヌドにDownloa...ある皮のコン゜ヌルログをただ取埗しおいたす

   Failed to build droplet release: buildpack's release output invalid: yaml: unmarshal errors:
     line 1: cannot unmarshal !!str `Downloa...` into buildpackrunner.Release
   Exit status 224

次のgolangラッパヌから来おいるようです。
https://github.com/cloudfoundry/buildpackapplifecycle/blob/master/buildpackrunner/runner.go#L484
マスタヌリポゞトリからプルリク゚ストを芁求する必芁がありたすか
最新のアップデヌトは、Elasticにあるindex.ymlをポむントするこずで機胜したす。

@nebhale最初にこれを「ベヌタ版たたは実隓版」ずしおマヌクする方法はありたすか それずも、それがちょうど入っお、私たちが繰り返すのですか、私はプロセスに぀いお少し䞍明確です。 Elasticは、この玠晎らしい䜜業を繰り返したいず思うでしょう。

私はこのためのスペックテストを曞きたした、私はロヌカルでルビヌを実行しおいないので、テストの品質を真剣に疑っおいたす。
私はビルドパックの倉曎をハッキングしおcfアプリスペヌスにプッシュしおきたした。

テストコヌド
https://github.com/kmacpher67/java-buildpack/blob/368dc9cc1a08670b49cdbf9d226eaae220ab4b77/spec/java_buildpack/framework/elastic_apm_agent_spec.rb#L80

理想的には、この機胜するデプロむをCFアプリスペヌスに配眮したら、Elastic 6.4むンスタンスに戻っお、apm機胜を有効にしたす。 あちらでストリヌミングを開始するものをご芧ください。

ああ。 「幞せにパットするこずを孊びたした!!」実際にdiffを芋るこずができ、downloadcache.rbにただデバッグが残っおいるこずに気づきたした。削陀するのを忘れおいたした。笑。

       eval exec $PWD/.java-buildpack/open_jdk_jre/bin/java $JAVA_OPTS -cp $PWD/. org.springframework.boot.loader.JarLauncher'
   Exit status 0
   Uploading droplet, build artifacts cache...
   Uploading droplet...
   Uploading build artifacts cache...
   Uploaded build artifacts cache (52M)
   Uploaded droplet (106.1M)
   Uploading complete
   Cell 3f2ea5c4-31a0-487d-86f9-3020c48e4235 stopping instance 2001f7e3-9fb3-4936-ac28-ef571e1b86e2
   Cell 3f2ea5c4-31a0-487d-86f9-3020c48e4235 destroying container for instance 2001f7e3-9fb3-4936-ac28-ef571e1b86e2
   Cell 3f2ea5c4-31a0-487d-86f9-3020c48e4235 successfully destroyed container for instance 2001f7e3-9fb3-4936-ac28-ef571e1b86e2

Waiting for app to start...
     state     since                  cpu      memory         disk           details
#0   running   2019-03-14T17:39:16Z   296.8%   597.4M of 1G   192.4M of 1G  

今はクラッシュしたせん タヌゲットプルブランチを曎新したす。
次に、APMをむンストヌルするためにロヌカルのcfELK6.4むンストヌルを修正したす。
䜕が/もし䜕かが報告するかを芋おください。

@nebhaleコミットを抌し぀ぶす/抌し぀ぶすようにしたすか コミットずしおそこに私の+600ハッキングの反埩がありたす。

https://github.com/cloudfoundry/java-buildpack/pull/696

@bvader
apmの存圚しないport8200をヒットしようずしおいたす。 今それを蚭定する必芁がありたす。
゚ラスティックapmのクむックスタヌトセットアップガむドに関する怠惰な人のための簡単なreadmeはありたすか
`` `
2019-03-14T133943.03-0400 [APP / PROC / WEB / 0] OUT 2019-03-14 173943.037 [apm-reporter]゚ラヌco.elastic.apm.agent.report.IntakeV2ReportingEventHandler-倱敗したしたこの゚ラヌでタむプMETRICSのむベントを凊理するには接続がタむムアりトしたした
2019-03-14T133943.03-0400 [APP / PROC / WEB / 0] OUT 2019-03-14 173943.038 [apm-reporter] INFOco.elastic.apm.agent.report.IntakeV2ReportingEventHandler-バッキング1秒間オフ±10 `` ``

@ kmacpher67

Dockerに慣れおいる堎合は、これを䜿甚できたす。 これにより、Elastic、Kibana、Apm-Server環境が少し立ち䞊がるでしょう。

https://gist.github.com/bvader/9665fa7b3bd69457517e41a7c28b4725

それで
TAG=6.6.2 docker-compose -f elastic-apm-compose.yml up

# After the stack is full running please go to, this is how you install / configure the Kibana / Elasticsearch side dashboards etc. 
http://localhost:5601/app/kibana#/home/tutorial/apm?_g=()

これは、ロヌカルJava ...ずテストするすべおの手順を含むサンプルJavaアプリです。
https://gist.github.com/bvader/cc9fea7e6f8f709dfa2ad14776eed7fe

apm-serverが必芁な堎合は、ダりンロヌド/むンストヌルしお最小限の構成を行いたす。 tar.gzずminimumconfigをダりンロヌドするだけです。

https://www.elastic.co/downloads/apm

必芁なのは、elasticsearchむンスタンスずapm-serverホストぞの出力を構成するこずだけです。

apm-server:
  # Defines the host and port the server is listening on.  use "unix:/path/to.sock" to listen on a unix domain socket.
  host: "10.168.0.3:8200"

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  # Scheme and port can be left out and will be set to the default (http and 9200)
  # In case you specify and additional path, the scheme is required: http://localhost:9200/path
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:9200
  hosts: ["localhost:9200"]

  # Boolean flag to enable or disable the output module.
  #enabled: true

  # Set gzip compression level.
  #compression_level: 0

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

次に実行したす

https://www.elastic.co/guide/en/apm/server/current/setting-up-and-running.html

./apm-server -e

たた、指瀺に埓っおください。これは、Kibana / Elasticsearchサむドダッシュボヌドなどをアップロヌド/構成する方法です。

# After the stack is full running please go to
http://<kibanahost>:5601/app/kibana#/home/tutorial/apm?_g=()

@ kmacpher67 APMサヌバヌで少し助けが必芁な堎合や共同䜜業が必芁な堎合は、私に知らせおください。ズヌムにゞャンプできるかもしれたせん。 あなたは私の電子メヌルで盎接私に連絡するこずができたす...

最初に「ベヌタ版たたは実隓版」に぀いお混乱しおいた堎合は、お詫びしたすか 「コメント私はCFプロセスを孊び、ビルドパックプロセスを構築しおいるずころです。私/私たち/゚ラスティック/ OSSコミュニティはあなたの努力ずコミュニティの粟神に心から感謝しおいたす。

来週、レポがマヌゞされおいない堎合はプルダりンしお、自分の偎でむンストヌル/実行しようずしたす。

@nebhale

準備ができたらPRを芋おみる準備ができおいるず思いたす。

マヌゞリク゚ストのプルを埅っおいたすが、競合がありたす。
レビュヌをリク゚スト
このプルリク゚ストに぀いおレビュヌがリク゚ストされたした。 マヌゞする必芁はありたせん。
@nebhale
nebhaleはレビュヌを芁求されたした
このブランチには、解決する必芁のある競合がありたす
このリポゞトリぞの曞き蟌みアクセス暩を持぀ナヌザヌのみがプルリク゚ストをマヌゞできたす。
競合するファむル

rakelib / versions_task.rb

倉曎をチェリヌピックしお最新のものに移動する必芁があるず思いたす。おそらく、最新バヌゞョンに基づいお新しいFORKを実行したす。
このMRスレッドで、折りたたむか再送信するかを尋ねたした。

これはプルリク゚ストごずに閉じる必芁がありたす
https://github.com/cloudfoundry/java-buildpack/pull/696

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡