NewRelic Java 에이전트가 설치된 Elasticsearch를 실행하고 있습니다. ES에서 아무 것도 변경하지 않고 맞춤 측정 항목을 기록하려고합니다.다른 보조 에이전트가있는 앱에 맞춤 측정 항목을 기록 할 수 있습니까?
나는 이것을하기 위해 NewRelic 제안 된 방법을 알고있다. Steven Eksteens Elasticsearch Plugin이지만 루비 기반이고 우리는 우리의 스택에 다른 언어를 추가하는 것을 피하려고 노력하고있다.
import newrelic.agent
from time import sleep
import logging
logger = logging.getLogger()
logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
# generate config file with 'newrelic-admin generate-config <apicode> newrelic.ini'
newrelic.agent.initialize('newrelic.ini')
application_str = dict(newrelic.agent.newrelic.core.config.global_settings())["app_name"]
application = newrelic.agent.register_application(application_str)
while True:
newrelic.agent.record_custom_metric('Custom/Value', 1, application)
sleep(10)
이 잘 작동 : 나는 NewRelic 파이썬 에이전트와 newrelic.agent.record_custom_metric 기능을 사용하여 파이썬에서 스티븐스 노력을 복제했습니다. 유일한 문제 : 기존의 Java-agent 제어 App과 동일한 app_name을 사용하도록 구성된 경우 NewRelic에 '(Python)'이라는 부록으로 새 앱을 등록합니다. 내가 원했던 것은 메트릭을 원래 메트릭에 추가하는 것입니다. 이것이 가능한가?
오? 즉, '공식'Elasticsearch 플러그인은 Java 에이전트와도 공존 할 수 없다는 의미입니다. ES 통계와 JVM 메트릭을 동시에 사용할 수 있습니까? – Tarwin
그들은 공존합니다. 단일 차트로 병합 할 수 없습니다. Ruby 응용 프로그램과 Python 응용 프로그램을 동일한 이름으로 만들 수 없으며 New Relic의 동일한 응용 프로그램 공간을 차지할 것으로 예상 할 수 없습니다. 그들은 둘 다보고 할 것이지만, New Relic Dashboard에 별도의 응용 사례가 있습니다. – Walden