يحتوي Elastic على وحدة APM جديدة لـ ELK تحتوي على وكيل أجهزة جافا.
فيما يلي ملاحظات البدء السريع:
https://www.elastic.co/blog/elastic-apm-java-agent-beta-released
لقد حاولت إنشاء فرع مع بداية الوكيل.
https://github.com/kmacpher67/java-buildpack/tree/elastic-apm-agent
هل من الأسهل بالنسبة لي اختراق هذا معًا وإجراء "طلب سحب" للقيام بعملية الدمج؟
أو لك فقط للقيام بذلك؟
اسمحوا لي أن أعرف ما هو الأفضل بالنسبة لك.
نرحب بأي تعليقات تنتقد قاعدة الكود الموجودة لدي.
شكرا لصبرك. لقد قمت للتو بالبحث في هذا الأمر ولكن عندما قمت بمراجعة مفترق الطرق الخاص بك ، لا يبدو أنك أجريت أي تغييرات في فرعك.
بشكل عام ، يبدو أن التكامل واضح حقًا. أفضّل أن ترسل بيانًا عامًا لهذا الغرض ، ويجب أن يمنحك الاستناد إلى شيء مثل Azure Application Insights Agent بداية جيدة.
لقد دفعت التغييرات المحلية git.
تمت الإضافة:
new file: config/elastic_apm_agent.yml new file: lib/java_buildpack/framework/elastic_apm_agent.rb
اتبعت بشكل أساسي نمط New Relic.
شكرًا وآسف للفشل في تنفيذ / دفع git الأساسي. :(
يبدو هذا قريبًا بما يكفي لتقديمه كعلاقات عامة رسمية للمراجعة. هناك بعض التغييرات التي نحتاج إلى إجرائها ، لكن لا شيء مهم.
ماذا علي أن أفعل لهذا ليتم الدمج؟
هل أنا بحاجة لفعل أي شيء؟
سأقوم باختبار هذا باستخدام الفرع المخصص الخاص بي؟
لقد قمت بدمج الفرع البعيد الخاص بي في البرنامج الرئيسي ، وقمت بتحديث المستندات وبعض العناصر الأخرى التي يبدو أنها مطلوبة للحصول على كود ElasticApmAgent
وعمل تكوين yml.
الآن أتلقى خطأ في قسم الإصدار.
علاوة على ذلك ، قمت بتشغيل تصحيح الأخطاء في هذا المستند:
https://github.com/cloudfoundry/java-buildpack/blob/master/docs/debugging-the-buildpack.md
أنا الآن أحصل على قدر مجنون من قطع الأشجار.
لا يبدو
نهاية السجل التفصيلي: يبدو الخطأ الرئيسي ؛
فشل إنشاء إصدار droplet: إخراج 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
يظهر في السجل ، ولكن لا تفعل ذلك عبارات طباعة التصحيح للترجمة والإفراج.
انظر الكود هنا:
https://github.com/kmacpher67/java-buildpack/blob/master/lib/java_buildpack/framework/elastic_apm_agent.rb#L29
ahhh الافراج عن خطوة المكالمات التكوين.
ahha الجزء 2: المفاتيح حساسة لحالة الأحرف.
cf update-service-provided-user-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 غير موجود.
حماقة الريبو المخضرم لا يدعم index.yml
http://central.maven.org/maven2/co/elastic/apm/elastic-apm-agent/
ما هي الخطوات التالية للتغلب على هذا؟
بعد قدر كبير من القرصنة (uris غير صالح ، التعطيل السيئ المطلوب كشف الكتل ، إلخ) والمراجعات:
في النهاية مع 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
تضمين التغريدة
هل هو شرط أن index.yml في الريبو المخضرم تحته
https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent؟
ما هي أفضل ممارسة لتحديد موقع index.yml؟ هل هناك مواقع مشتركة أخرى (جيثب ، إلخ)
بشكل عام ، يستضيف الأشخاص ببساطة الثنائيات في أي مكان يريدون. لذلك إذا نظرت إلى config/add_dynamics_agent.yml
فإنهم يستضيفون فقط في مكان ما على المجال الخاص بهم.
هذا هو خيارنا المفضل (السماح للمشاريع بالحفاظ على الريبو والتحديث كما هو مطلوب) ، ولكن إذا كان هذا يمثل عبئًا كبيرًا جدًا ، فلدينا مشروع java-buildpack-dependency-builder
حيث نقوم بتكرار التبعيات في ذاكرة تخزين مؤقت مستضافة بواسطة Cloud Foundry المؤسسة. هناك بعض القيود على ذلك فيما يتعلق بإتاحة الترخيص والتنزيل ، ولكن يمكننا استكشافها إذا لزم الأمر.
شكرا....
آسف لكونك كثيفًا / حتى أكون واضحًا:
أ) يمكننا استضافة الثنائيات حيث نريد ، بالنسبة لنا الريبو المخضرم
ب) يمكننا استضافة index.yml الذي يشير إلى تلك الثنائيات الموجودة في
https://github.com/cloudfoundry/java-buildpack/tree/master/config/add_elastic_agent.yml
ج) وسنفتح طلب سحب للقيام بذلك. سنصبح مساهمين في CF من خلال التوقيع على CLA
صيح؟
هل هناك أمر لإضافة buildpack + index.yml هل كل ذلك يجب أن يحدث كجزء من نفس العلاقات العامة
لا مشكلة على الإطلاق.
index.yml
لمباشرة تلك الثنائيات. لذلك يجب أن يكون هناك بعض URI U
، بحيث يوجد U/index.yml
ويحتوي على تجزئة YAML للإصدارات لتنزيل URIs. على سبيل المثال ، يمكنك استضافة https://raw.githubusercontent.com/elastic/apm-agent-java/master/index.yml
مع روابط إلى Maven Central و config/elastic_apm_agent.yml
ستتضمن repository_root: https://raw.githubusercontent.com/elastic/apm-agent-java/master
.لأغراض الاختبار ، قمت بذلك "بشكل متكرر" باستخدام نفس رمز إعادة الشراء الذي يستضيف ملفات الجرة للحصول على الريبو للبناء ، ولكن ما زلت أتلقى أخطاء في الإصدار.
تضمين التغريدة
https://github.com/kmacpher67/java-buildpack/tree/master/elastic-repo
إذا قمت بنسخ هذا الدليل الفرعي إلى elastic
repo كما يقترح Ben ، فيمكنك حينئذٍ وضع ثنائياتك هناك ، ويمكنني تحديث هذا الريبو للإشارة إلى تلك الملفات الأولية.
nebhale ما زلت أتلقى أخطاء متنوعة رهيبة:
"" [ConfigurationUtils] تهيئة DEBUG من /tmp/buildpackdownloads/a457f9495309d44a788ea9f361d85ebf/config/java_main.yml: {"java_main_class" => لا شيء ، "arguments" => لا شيء
[Buildpack] حمولة إصدار DEBUG:
الإضافات: []
config_vars: {}
الأنواع_العملية_الافتراضية:
الويب: 'JAVA_OPTS = "- مسار الوكيل: $ 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 = صحيح
-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") && صدى تكوين ذاكرة 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 = "- مسار الوكيل: $ 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 = صحيح
-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") && صدى تكوين ذاكرة 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 '
فشل إنشاء إصدار droplet: إخراج buildpack غير صالح: yaml: unmarshal errors:
السطر 1: لا يمكن إلغاء التنظيم !! str Downloa...
في buildpackrunner.Release
حالة الخروج 224 ```
هل يجب على Ben إعادة إرسال ما لدي ، فأنت بحاجة إلي لحل أخطاء الإصدار المتنوعة هذه.
أنا بحاجة إلى المواصفات أيضا. لم أفعل ذلك بعد.
أنا أستخدم الفرع الرئيسي الآن ، لم أستطع معرفة كيفية تحميل الفرع عبر البيان.
لذا فقد اندمجت مرة أخرى إلى سيد repos الخاص بي.
https://github.com/kmacpher67/java-buildpack
اسمحوا لي أن أعرف ماذا أفعل.
هذا بالتأكيد لأنك تقوم بإخراج شيء ما إلى وحدة التحكم أثناء مرحلة الإصدار. stdout
محجوز أثناء تلك المرحلة لتوصيل حمولة تكوين العملية.
بمجرد تبسيط الكود للاستفادة من كل سلوك التنزيل لدينا ومطابقة تصميمات تكامل APM الأخرى ، أعتقد أنك ستجد هذه المشكلة تختفي.
تضمين التغريدة
تضمين التغريدة
https://github.com/kmacpher67/java-buildpack/tree/master/elastic-repo
إذا قمت بنسخ هذا الدليل الفرعي إلىelastic
repo كما يقترح Ben ، فيمكنك حينئذٍ وضع ثنائياتك هناك ، ويمكنني تحديث هذا الريبو للإشارة إلى تلك الملفات الأولية.
أنا أعمل مع قائدنا التقني لعامل Elastic Java APM. نحن نعمل على خيارات / قرارات التكوين. أظن أننا سنترك الثنائيات في الريبو المخضرم لأن جميع الوثائق / التبعيات الأخرى تعتمد على ذلك.
يمكنك رؤية هذه المناقشة هنا.
https://github.com/elastic/apm-agent-java/issues/523#issuecomment -472604463
@ kmacpher67 نقدر
أعتقد أننا نرغب في تحديث المستندات لعامل Elastic APM ، ربما لا ينبغي أن تكون خاصة بـ JRebel. ربما أفتقد شيئًا ما ولكن ألا يجب أن يكون هذا مجرد مستندات buildpack عامة لـ Elastic APM؟
أنا أشير إلى:
https://github.com/kmacpher67/java-buildpack/blob/master/docs/framework-elastic_apm_agent.md
يبدو أيضًا أنه ربما يوجد عدد من المعلمات الإضافية التي يمكن / ينبغي دعمها. ربما بعد أن نحصل على هذه العلاقات العامة الأولية في فريق Elastic يمكنه إلقاء نظرة والتحديث.
مثال secret_token
هو تكوين مهم جدًا.
https://www.elastic.co/guide/en/apm/agent/java/current/config-reporter.html#config -secret-token
يتطلع فريق Elastic إلى المساهمة.
nebhale نعمل على CLA ، صدقنا أنا وأنت عبر المسارات ، كنت نائب الرئيس المهندس. في CoreLogic حيث استخدمنا PCF / Labs ، ساعد في بناء المعامل في SaMo الآن في Elastic
nebhale هل لديك خطط لدعم مستودعات المخضرمين مباشرة؟ 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
تضمين التغريدة
لقد قمت بتحديث وثائق الوكيل.
تمت إضافة تجاوز الخدمة لـ secret_token
ttps: //github.com/kmacpher67/java-buildpack
هناك ملف خاصية اختياري نضيفه ، هل لديك نموذج واحد يمكنني + إضافته إلى الريبو:
حزمة البناء لها موقع لذلك:
https://github.com/kmacpher67/java-buildpack/tree/master/resources
تصويت +1 لدعم XML المخضرم ، كنت سأكتبه لكنني لست مبرمجًا روبيًا وأشك في أن الأشخاص cf سيعطون وكلاء آخرين لديهم نفس الموقف. سيكون من المثالي إذا كان بإمكانك إضافة index.yml إذا لم يكن كذلك ، اسمحوا لي أن أعرف ، سوف أتحقق من المشروع المذكور أعلاه للحصول على الأشخاص المحوريين لتنظيم هذه العناصر.
أشك في أن الأشخاص CF سيعطون وكلاء آخرين لديهم نفس الموقف
أعتقد أن هذه حجة لإضافة دعم مخضرم - وهذا من شأنه أن يجعل الأمر ليس أسهل فقط لـ Elastic APM ، ولكن أيضًا للآخرين 🙂
في غضون ذلك ، أضفت index.yml
إلى مستودع جيثب: https://github.com/elastic/apm-agent-java/pull/524
@ kmacpher67
يمكن الآن العثور على index.yml على:
https://raw.githubusercontent.com/elastic/apm-agent-java/master/cloudfoundry/index.yml
1) نشكرك على التحديث على secret_token
2) فيما يتعلق بالوثائق ، ما زلت في حيرة من أمري بشأن جميع مراجع JRebel واكتشاف JRebel وما إلى ذلك. لا ينبغي أن يكون لعامل Elastic APM / buildpack أي تبعيات / مراجع لجهات خارجية وارتباطات تشعبية إلى JRebel. يمكننا تقديم الإرشادات في مستندات Elastic Java APM قريبًا.
أتوقع أن تبدو هذه الصفحة أشبه بصفحة New Relic Page. أو ربما أفتقد شيئًا ما تمامًا وهذا مرتبط بإحكام مع JRebel.
https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-new_relic_agent.md
يسعدني الدخول والمساعدة من خلال مفترق طرقك أو بمجرد اندماجنا. ربما عليك فقط إخراج كل مرجع JRebel للبدء.
مثال
إطار عامل APM المرن
يتسبب Elastic APM Agent Framework في تكوين تطبيق تلقائيًا للعمل مع خدمة Elastic APM Service.
معيار الكشف | وجود خدمة New Relic منضمة واحدة. يُعرَّف وجود خدمة New Relic على أنها حمولة
VCAP_SERVICES
تحتوي على خدمة اسمها أو تصنيفها أو علامتهاelastic-apm
كسلسلة فرعية.
- | -
الكلمات الدلالية |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
هل يجب أن أطلب فقط "طلب السحب" من الريبو الرئيسي الخاص بي؟
يعمل آخر تحديث مع الإشارة إلى index.yml الموجود في Elastic.
nebhale هل هناك طريقة لتمييز هذا على أنه "تجريبي أو تجريبي" في البداية؟ أم أنها تدخل ونكررها ، فأنا غير واضح بعض الشيء بشأن هذه العملية. سوف ترغب Elastic في تكرار هذا العمل الرائع
لقد كتبت اختبارات المواصفات لهذا ، أشك بشدة في جودة الاختبارات لأنني لا أجري روبي محليًا.
لقد كنت أقوم بالقرصنة ودفع تغييرات حزمة الإنشاء إلى مساحة تطبيق cf.
من الناحية المثالية ، بمجرد أن أحصل على نشر العمل هذا بالانتقال إلى مساحة تطبيق CF ، أعود مرة أخرى إلى مثيل Elastic 6.4 الخاص بنا وقم بتمكين ميزات apm. انظر ماذا يبدأ التدفق هناك.
أوهه. "سعيد تعلمت الضرب!" في الواقع كنت قادرًا على إلقاء نظرة على فرق وأدركت أنه لا يزال هناك تصحيح في downloadcache.rb الذي نسيت إزالته. lol.
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
إنه لا يتحطم الآن! اسمحوا لي بتحديث فرع السحب الهدف.
ثم سأقوم بإصلاح تثبيت cf ELK6.4 المحلي الخاص بي من أجل تثبيت APM.
انظر ماذا / إذا كان هناك أي شيء يعود.
nebhale هل تريد مني أن أسحق / اسحق يرتكب؟ هناك +600 تكرارات القرصنة الخاصة بي هناك كالتزام.
https://github.com/cloudfoundry/java-buildpack/pull/696
تضمين التغريدة
إنها تحاول الوصول إلى المنفذ غير الموجود لـ apm. أنا بحاجة لإعداد ذلك الآن.
هل لديك تمهيد سريع للرجل الكسول في دليل إعداد البدء السريع لـ apm المرن؟
""
2019-03-14T13: 39: 43.03-0400 [APP / PROC / WEB / 0] انتهى 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] خارج 2019-03-14 17: 39: 43.038 [apm-reporter] INFO co.elastic.apm.agent.report.IntakeV2ReportingEventHandler - Backing إيقاف لمدة 1 ثانية (± 10٪) ""
@ kmacpher67
يمكنك استخدام هذا إذا كنت مرتاحًا عامل الشحن. هذا سوف يقف قليلا بيئة خادم مطاطا ، كيبانا ، Apm
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 المحلية ... وكل شيء يجب اختباره.
https://gist.github.com/bvader/cc9fea7e6f8f709dfa2ad14776eed7fe
إذا كنت تريد فقط خادم apm ، فسأقوم فقط بتنزيل / تثبيت والقيام بالحد الأدنى من التكوين. أود فقط تنزيل tar.gz والحد الأدنى من التكوين.
https://www.elastic.co/downloads/apm
يجب أن تحتاج فقط إلى تكوين الإخراج لمثيل elasticsearch ومضيف خادم apm
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 وبناء عملية buildpack ، أنا / نحن / Elastic / مجتمع OSS نقدر تمامًا جهودك وروحك المجتمعية.
سأحاول الأسبوع المقبل سحب الريبو الخاص بك إذا لم يتم دمجه ومحاولة التثبيت / التشغيل من طرفي.
تضمين التغريدة
أعتقد أننا مستعدون لك لإلقاء نظرة على العلاقات العامة عندما تكون جاهزًا.
أنا أنتظر سحب طلب الدمج ، لكن هناك تعارض.
تم طلب المراجعة
تم طلب المراجعة في طلب السحب هذا. لا يشترط الدمج.
تضمين التغريدة
تم طلب nebhale للمراجعة
هذا الفرع به تعارضات يجب حلها
فقط أولئك الذين لديهم حق الوصول للكتابة إلى هذا المستودع يمكنهم دمج طلبات السحب.
الملفات المتضاربة
أعتقد أنني بحاجة إلى اختيار التغييرات ونقلها إلى الأحدث ، وربما عمل شوكة جديدة بناءً على أحدث إصدار.
لقد سألت في موضوع MR هذا ، إذا كان يجب عليّ الانهيار أو إعادة التقديم.
يجب إغلاق هذا عند طلب السحب
https://github.com/cloudfoundry/java-buildpack/pull/696