SlideShare ist ein Scribd-Unternehmen logo
1 von 43
AppDynamics Webinars:
Building Custom Extensions
Todd Radel, Senior Manager – Customer Advocacy
Agenda
• Introduction
• Writing a script extension
• Writing a Java extension
• Using your custom metrics
• Best practices
• Office hours
About Me
Todd Radel
SENIOR MANAGER
CUSTOMER ADVOCACY TEAM
• More than 20 years experience in the software industry
• Java, .NET, Python, Perl
• Author of the Python SDK for AppDynamics REST API
• Author of six AppDynamics Extensions: F5, Tibco EMS,
Redis, Keynote, SQL, URL Monitor
Copyright © 2015 AppDynamics. All rights reserved. 3
tradel@appdynamics.com
+1 (484) 857-2335
tradel
todd.radel
linkedin.com/in/tradel
INTRODUCTION
What is an Extension?
• Plugs in to Machine Agent
• Imports additional metrics to AppDynamics
Copyright © 2015 AppDynamics. All rights reserved. 5
Why Use Extensions?
“I already have Graphite/Nagios/my own custom tools…”
BUT:
• Add more color to overall AppDynamics picture
• Baseline and alert on custom metrics
• Create custom dashboards
• Work towards a “single pane of glass”
Copyright © 2015 AppDynamics. All rights reserved. 6
Example Extensions
• Apache Server Monitor
• F5 Monitor
• ActiveMQ Monitor
…or build your own!
Copyright © 2015 AppDynamics. All rights reserved. 7
Use Cases
• Run a SQL query every few minutes to count
sales/signups/etc.
• Extract metrics from custom instrumentation
• Eliminate redundant tools
Copyright © 2015 AppDynamics. All rights reserved. 8
SCRIPT EXTENSIONS
Anatomy of a Simple Script Extension
• Script file
• monitor.xml – describes the extension
Copyright © 2015 AppDynamics. All rights reserved. 10
Example
• Write an extension to count the number of files in /var/tmp
and alert if there are too many
Copyright © 2015 AppDynamics. All rights reserved. 11
Simple Extension Script
Copyright © 2015 AppDynamics. All rights reserved. 12
Script Output
name=Custom Metrics|File Count|count, value=29, aggregator=OBSERVATION,
time-rollup=CURRENT, cluster-rollup=COLLECTIVE
• name – path and name of your metric
• value – metric value
• aggregator – how to handle multiple values in one interval
• time-rollup – how to aggregate values over time
• cluster-rollup – how to aggregate values over nodes
Copyright © 2015 AppDynamics. All rights reserved. 13
Metric Aggregation
Aggregation Time Rollup Cluster Rollup
How should the controller handle
multiple values in a single minute?
How should values be aggregated over
time?
How should values be aggregated
across nodes in a tier?
AVERAGE
Average of all reported values in that
minute
AVERAGE
Average of all one-minute values
INDIVIDUAL
Average of metric values across each
node in the tier
SUM
Sum of all reported values in the
minute
SUM
Sum of all one-minute values
COLLECTIVE
Sum of metric values across each node
in the tier
OBSERVATION
Last reported value in the minute
CURRENT
Last reported one-minute value
Copyright © 2015 AppDynamics. All rights reserved. 14
Simple monitor.xml for a Script
Copyright © 2015 AppDynamics. All rights reserved. 15
”periodic” or “continuous”
script filename
OS-Specific monitor.xml for a Script
Copyright © 2015 AppDynamics. All rights reserved. 16
JAVA EXTENSIONS
Anatomy of a Java Extension
• Class file or JAR file
• Dependent libraries
• Configuration file
• monitor.xml
Copyright © 2015 AppDynamics. All rights reserved. 18
Structuring Your Java Code
• Can be a single class
• Extend from com.singularity.ee.agent.systemagent.api.AManagedMonitor
• Override and implement execute() method
• Call getMetricWriter().printMetric() to send data
Copyright © 2015 AppDynamics. All rights reserved. 19
Example
• Write an extension to import metrics from the Linux
collectd(8) daemon
Copyright © 2015 AppDynamics. All rights reserved. 20
Sample Execute() Method
Copyright © 2015 AppDynamics. All rights reserved. 21
Configuring Your Extension
• Task arguments from monitor.xml are sent as first
parameter to execute() method
public TaskOutput execute(Map<String, String> args,
TaskExecutionContext taskExecutionContext)
throws TaskExecutionException {
• Configure via external file (e.g. config.yml), read the file
during execute()
Copyright © 2015 AppDynamics. All rights reserved. 22
Monitor.xml for Java
Copyright © 2015 AppDynamics. All rights reserved. 23
Installation
Copyright © 2015 AppDynamics. All rights reserved. 24
HTTP LISTENER
When to use the HTTP Listener
• When you don’t have control over the code
• When the data collector runs on another machine
Copyright © 2015 AppDynamics. All rights reserved. 26
Starting Machine Agent with HTTP Listener
java -Dmetric.http.listener=true
-Dmetric.http.listener.port=8000
-jar machineagent.jar
Copyright © 2015 AppDynamics. All rights reserved. 27
Sending Metric Data
Copyright © 2015 AppDynamics. All rights reserved. 28
Sending Metrics as JSON
Copyright © 2015 AppDynamics. All rights reserved. 29
USING CUSTOM METRICS
Locating Your Custom Metrics
Copyright © 2015 AppDynamics. All rights reserved. 31
Tier name
Node name
Metric path
Create Custom Dashboards
Copyright © 2015 AppDynamics. All rights reserved. 32
Sample Custom Dashboard
Copyright © 2015 AppDynamics. All rights reserved. 33
Create Health Rules
Copyright © 2015 AppDynamics. All rights reserved. 34
BEST PRACTICES
Best Practices
• Make it configurable via monitor.xml or config.yml
• Allow a custom metric path
• Write portable code
• Send output to the machine agent log
• Follow our “mavenized” project structure
• Post the code on GitHub and encourage pull requests
Copyright © 2015 AppDynamics. All rights reserved. 36
Increasing the Agent Metric Limit
• If you don’t see all metrics in the controller UI
• Check machine agent logs for “metric limit reached”
• Add command line options and restart machine agent
• Without custom extensions:
java -jar machineagent.jar
• With extensions:
java -Xmx256m -Dappdynamics.agent.maxMetrics=10000
-jar machineagent.jar
Copyright © 2015 AppDynamics. All rights reserved. 37
Publishing Your Extension
• Remove any usernames/passwords/hostnames from
configuration files
• Add README.md and LICENSE files
• Post the code on GitHub
• Create new thread on AppDynamics Community to
announce and publish!
Copyright © 2015 AppDynamics. All rights reserved. 38
Contents of Your README.md
• Description
• Requirements
• Installation
• Configuration
• Metrics Produced
• How to Contribute (optional)
• History/Release Notes
• Screenshots
Copyright © 2015 AppDynamics. All rights reserved. 39
FURTHER READING
Documentation
• Extensions and Custom Metrics
• Build a Monitoring Extension Using Java
• Build a Monitoring Extension Using Scripts
• Machine Agent HTTP Listener
Copyright © 2015 AppDynamics. All rights reserved. 41
Sample Java code
• Apache Monitoring Extension
• URL Monitoring Extension
• Follow along as I finish these extensions!
https://github.com/tradel/collectd-monitoring-extension
https://github.com/tradel/file-count-monitoring-extension
Copyright © 2015 AppDynamics. All rights reserved. 42
Thank You

Weitere ähnliche Inhalte

Was ist angesagt?

Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDogRedis Labs
 
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)Eunseok Yi
 
NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014KwangSam Kim
 
Splunk Overview
Splunk OverviewSplunk Overview
Splunk OverviewSplunk
 
Alexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With ZabbixAlexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With ZabbixAndré Déo
 
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGI
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIPhpconf 2013 - Agile Telephony Applications with PAMI and PAGI
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIMarcelo Gornstein
 
[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니Yongha Kim
 
Evolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERNEvolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERNBelmiro Moreira
 
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마강 민우
 
Observability in the world of microservices
Observability in the world of microservicesObservability in the world of microservices
Observability in the world of microservicesChandresh Pancholi
 
How to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeterHow to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeterInfluxData
 
Container Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondContainer Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondKubeAcademy
 
Monitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixMonitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixZabbix
 
Let’s unbox Rancher 2.0 <v2.0.0>
Let’s unbox Rancher 2.0 <v2.0.0>  Let’s unbox Rancher 2.0 <v2.0.0>
Let’s unbox Rancher 2.0 <v2.0.0> LINE Corporation
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법Jeongsang Baek
 
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요Eunseok Yi
 
New Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLNew Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLconfluent
 
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~Michio Koyama
 

Was ist angesagt? (20)

Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
 
NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014
 
Splunk Overview
Splunk OverviewSplunk Overview
Splunk Overview
 
Alexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With ZabbixAlexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With Zabbix
 
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGI
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIPhpconf 2013 - Agile Telephony Applications with PAMI and PAGI
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGI
 
[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니
 
Evolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERNEvolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERN
 
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
 
Observability in the world of microservices
Observability in the world of microservicesObservability in the world of microservices
Observability in the world of microservices
 
How to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeterHow to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeter
 
Container Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondContainer Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyond
 
Monitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixMonitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With Zabbix
 
Fluent Bit: Log Forwarding at Scale
Fluent Bit: Log Forwarding at ScaleFluent Bit: Log Forwarding at Scale
Fluent Bit: Log Forwarding at Scale
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
 
Let’s unbox Rancher 2.0 <v2.0.0>
Let’s unbox Rancher 2.0 <v2.0.0>  Let’s unbox Rancher 2.0 <v2.0.0>
Let’s unbox Rancher 2.0 <v2.0.0>
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
 
New Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLNew Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQL
 
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
 

Andere mochten auch

Cisco Tetration Analytics
Cisco Tetration AnalyticsCisco Tetration Analytics
Cisco Tetration AnalyticsCisco do Brasil
 
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...AppDynamics
 
Cистема сетевой аналитики для ЦОД Cisco Tetration Analytics
Cистема сетевой аналитики для ЦОД Cisco Tetration AnalyticsCистема сетевой аналитики для ЦОД Cisco Tetration Analytics
Cистема сетевой аналитики для ЦОД Cisco Tetration AnalyticsCisco Russia
 
TechWiseTV Workshop: Tetration Analytics
TechWiseTV Workshop: Tetration AnalyticsTechWiseTV Workshop: Tetration Analytics
TechWiseTV Workshop: Tetration AnalyticsRobb Boyd
 
AppDynamics VS New Relic – The Complete Guide
AppDynamics VS New Relic – The Complete GuideAppDynamics VS New Relic – The Complete Guide
AppDynamics VS New Relic – The Complete GuideTakipi
 
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...AppDynamics
 
Business Transactions with AppDynamics
Business Transactions with AppDynamicsBusiness Transactions with AppDynamics
Business Transactions with AppDynamicsAppDynamics
 
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit EuropeCisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit EuropeAppDynamics
 

Andere mochten auch (8)

Cisco Tetration Analytics
Cisco Tetration AnalyticsCisco Tetration Analytics
Cisco Tetration Analytics
 
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
 
Cистема сетевой аналитики для ЦОД Cisco Tetration Analytics
Cистема сетевой аналитики для ЦОД Cisco Tetration AnalyticsCистема сетевой аналитики для ЦОД Cisco Tetration Analytics
Cистема сетевой аналитики для ЦОД Cisco Tetration Analytics
 
TechWiseTV Workshop: Tetration Analytics
TechWiseTV Workshop: Tetration AnalyticsTechWiseTV Workshop: Tetration Analytics
TechWiseTV Workshop: Tetration Analytics
 
AppDynamics VS New Relic – The Complete Guide
AppDynamics VS New Relic – The Complete GuideAppDynamics VS New Relic – The Complete Guide
AppDynamics VS New Relic – The Complete Guide
 
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
 
Business Transactions with AppDynamics
Business Transactions with AppDynamicsBusiness Transactions with AppDynamics
Business Transactions with AppDynamics
 
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit EuropeCisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
 

Ähnlich wie Webinar - Building Custom Extensions With AppDynamics

Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentationAhmed Kamel
 
Java springboot microservice - Accenture Technology Meetup
Java springboot microservice - Accenture Technology MeetupJava springboot microservice - Accenture Technology Meetup
Java springboot microservice - Accenture Technology MeetupAccenture Hungary
 
Putting Quality First through Continuous Testing
Putting Quality First through Continuous TestingPutting Quality First through Continuous Testing
Putting Quality First through Continuous TestingTechWell
 
Add Apache Web Server to your Unified Monitoring Toolkit
Add Apache Web Server to your Unified Monitoring ToolkitAdd Apache Web Server to your Unified Monitoring Toolkit
Add Apache Web Server to your Unified Monitoring ToolkitAppDynamics
 
Industry Keynote at Large Scale Testing Workshop 2015
Industry Keynote at Large Scale Testing Workshop 2015Industry Keynote at Large Scale Testing Workshop 2015
Industry Keynote at Large Scale Testing Workshop 2015Wolfgang Gottesheim
 
Feedback on building Production-Ready Microsoft Teams Apps
Feedback on building Production-Ready Microsoft Teams AppsFeedback on building Production-Ready Microsoft Teams Apps
Feedback on building Production-Ready Microsoft Teams AppsGuillaume Meyer
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard LiAmbassador Labs
 
Enabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using SteeltoeEnabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using SteeltoeVMware Tanzu
 
Integration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesIntegration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesJudy Breedlove
 
AzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release ManagementAzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release ManagementSergii Kryshtop
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsWeaveworks
 
Ansible Automation Platform.pdf
Ansible Automation Platform.pdfAnsible Automation Platform.pdf
Ansible Automation Platform.pdfVuHoangAnh14
 
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
MuleSoft Meetup Roma - Processi di Automazione su CloudHubMuleSoft Meetup Roma - Processi di Automazione su CloudHub
MuleSoft Meetup Roma - Processi di Automazione su CloudHubAlfonso Martino
 
Mulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different servicesMulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different servicesByreddy Sravan Kumar Reddy
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptnRob Jahn
 
Daimler’s Community Approach to TAS Platform Monitoring
Daimler’s Community Approach to TAS Platform MonitoringDaimler’s Community Approach to TAS Platform Monitoring
Daimler’s Community Approach to TAS Platform MonitoringVMware Tanzu
 
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...Jitendra Bafna
 
Collision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD PipelinesCollision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD PipelinesAmazon Web Services
 
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdfNET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdfTamir Dresher
 

Ähnlich wie Webinar - Building Custom Extensions With AppDynamics (20)

Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentation
 
Java springboot microservice - Accenture Technology Meetup
Java springboot microservice - Accenture Technology MeetupJava springboot microservice - Accenture Technology Meetup
Java springboot microservice - Accenture Technology Meetup
 
Putting Quality First through Continuous Testing
Putting Quality First through Continuous TestingPutting Quality First through Continuous Testing
Putting Quality First through Continuous Testing
 
Add Apache Web Server to your Unified Monitoring Toolkit
Add Apache Web Server to your Unified Monitoring ToolkitAdd Apache Web Server to your Unified Monitoring Toolkit
Add Apache Web Server to your Unified Monitoring Toolkit
 
Industry Keynote at Large Scale Testing Workshop 2015
Industry Keynote at Large Scale Testing Workshop 2015Industry Keynote at Large Scale Testing Workshop 2015
Industry Keynote at Large Scale Testing Workshop 2015
 
Feedback on building Production-Ready Microsoft Teams Apps
Feedback on building Production-Ready Microsoft Teams AppsFeedback on building Production-Ready Microsoft Teams Apps
Feedback on building Production-Ready Microsoft Teams Apps
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
 
Enabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using SteeltoeEnabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using Steeltoe
 
Integration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesIntegration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob Davies
 
AzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release ManagementAzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release Management
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
 
Ansible Automation Platform.pdf
Ansible Automation Platform.pdfAnsible Automation Platform.pdf
Ansible Automation Platform.pdf
 
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
MuleSoft Meetup Roma - Processi di Automazione su CloudHubMuleSoft Meetup Roma - Processi di Automazione su CloudHub
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
 
Mulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different servicesMulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different services
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptn
 
Daimler’s Community Approach to TAS Platform Monitoring
Daimler’s Community Approach to TAS Platform MonitoringDaimler’s Community Approach to TAS Platform Monitoring
Daimler’s Community Approach to TAS Platform Monitoring
 
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
 
Collision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD PipelinesCollision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD Pipelines
 
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdfNET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
 
Data Stack Summit 2023
Data Stack Summit 2023Data Stack Summit 2023
Data Stack Summit 2023
 

Kürzlich hochgeladen

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Kürzlich hochgeladen (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Webinar - Building Custom Extensions With AppDynamics

  • 1. AppDynamics Webinars: Building Custom Extensions Todd Radel, Senior Manager – Customer Advocacy
  • 2. Agenda • Introduction • Writing a script extension • Writing a Java extension • Using your custom metrics • Best practices • Office hours
  • 3. About Me Todd Radel SENIOR MANAGER CUSTOMER ADVOCACY TEAM • More than 20 years experience in the software industry • Java, .NET, Python, Perl • Author of the Python SDK for AppDynamics REST API • Author of six AppDynamics Extensions: F5, Tibco EMS, Redis, Keynote, SQL, URL Monitor Copyright © 2015 AppDynamics. All rights reserved. 3 tradel@appdynamics.com +1 (484) 857-2335 tradel todd.radel linkedin.com/in/tradel
  • 5. What is an Extension? • Plugs in to Machine Agent • Imports additional metrics to AppDynamics Copyright © 2015 AppDynamics. All rights reserved. 5
  • 6. Why Use Extensions? “I already have Graphite/Nagios/my own custom tools…” BUT: • Add more color to overall AppDynamics picture • Baseline and alert on custom metrics • Create custom dashboards • Work towards a “single pane of glass” Copyright © 2015 AppDynamics. All rights reserved. 6
  • 7. Example Extensions • Apache Server Monitor • F5 Monitor • ActiveMQ Monitor …or build your own! Copyright © 2015 AppDynamics. All rights reserved. 7
  • 8. Use Cases • Run a SQL query every few minutes to count sales/signups/etc. • Extract metrics from custom instrumentation • Eliminate redundant tools Copyright © 2015 AppDynamics. All rights reserved. 8
  • 10. Anatomy of a Simple Script Extension • Script file • monitor.xml – describes the extension Copyright © 2015 AppDynamics. All rights reserved. 10
  • 11. Example • Write an extension to count the number of files in /var/tmp and alert if there are too many Copyright © 2015 AppDynamics. All rights reserved. 11
  • 12. Simple Extension Script Copyright © 2015 AppDynamics. All rights reserved. 12
  • 13. Script Output name=Custom Metrics|File Count|count, value=29, aggregator=OBSERVATION, time-rollup=CURRENT, cluster-rollup=COLLECTIVE • name – path and name of your metric • value – metric value • aggregator – how to handle multiple values in one interval • time-rollup – how to aggregate values over time • cluster-rollup – how to aggregate values over nodes Copyright © 2015 AppDynamics. All rights reserved. 13
  • 14. Metric Aggregation Aggregation Time Rollup Cluster Rollup How should the controller handle multiple values in a single minute? How should values be aggregated over time? How should values be aggregated across nodes in a tier? AVERAGE Average of all reported values in that minute AVERAGE Average of all one-minute values INDIVIDUAL Average of metric values across each node in the tier SUM Sum of all reported values in the minute SUM Sum of all one-minute values COLLECTIVE Sum of metric values across each node in the tier OBSERVATION Last reported value in the minute CURRENT Last reported one-minute value Copyright © 2015 AppDynamics. All rights reserved. 14
  • 15. Simple monitor.xml for a Script Copyright © 2015 AppDynamics. All rights reserved. 15 ”periodic” or “continuous” script filename
  • 16. OS-Specific monitor.xml for a Script Copyright © 2015 AppDynamics. All rights reserved. 16
  • 18. Anatomy of a Java Extension • Class file or JAR file • Dependent libraries • Configuration file • monitor.xml Copyright © 2015 AppDynamics. All rights reserved. 18
  • 19. Structuring Your Java Code • Can be a single class • Extend from com.singularity.ee.agent.systemagent.api.AManagedMonitor • Override and implement execute() method • Call getMetricWriter().printMetric() to send data Copyright © 2015 AppDynamics. All rights reserved. 19
  • 20. Example • Write an extension to import metrics from the Linux collectd(8) daemon Copyright © 2015 AppDynamics. All rights reserved. 20
  • 21. Sample Execute() Method Copyright © 2015 AppDynamics. All rights reserved. 21
  • 22. Configuring Your Extension • Task arguments from monitor.xml are sent as first parameter to execute() method public TaskOutput execute(Map<String, String> args, TaskExecutionContext taskExecutionContext) throws TaskExecutionException { • Configure via external file (e.g. config.yml), read the file during execute() Copyright © 2015 AppDynamics. All rights reserved. 22
  • 23. Monitor.xml for Java Copyright © 2015 AppDynamics. All rights reserved. 23
  • 24. Installation Copyright © 2015 AppDynamics. All rights reserved. 24
  • 26. When to use the HTTP Listener • When you don’t have control over the code • When the data collector runs on another machine Copyright © 2015 AppDynamics. All rights reserved. 26
  • 27. Starting Machine Agent with HTTP Listener java -Dmetric.http.listener=true -Dmetric.http.listener.port=8000 -jar machineagent.jar Copyright © 2015 AppDynamics. All rights reserved. 27
  • 28. Sending Metric Data Copyright © 2015 AppDynamics. All rights reserved. 28
  • 29. Sending Metrics as JSON Copyright © 2015 AppDynamics. All rights reserved. 29
  • 31. Locating Your Custom Metrics Copyright © 2015 AppDynamics. All rights reserved. 31 Tier name Node name Metric path
  • 32. Create Custom Dashboards Copyright © 2015 AppDynamics. All rights reserved. 32
  • 33. Sample Custom Dashboard Copyright © 2015 AppDynamics. All rights reserved. 33
  • 34. Create Health Rules Copyright © 2015 AppDynamics. All rights reserved. 34
  • 36. Best Practices • Make it configurable via monitor.xml or config.yml • Allow a custom metric path • Write portable code • Send output to the machine agent log • Follow our “mavenized” project structure • Post the code on GitHub and encourage pull requests Copyright © 2015 AppDynamics. All rights reserved. 36
  • 37. Increasing the Agent Metric Limit • If you don’t see all metrics in the controller UI • Check machine agent logs for “metric limit reached” • Add command line options and restart machine agent • Without custom extensions: java -jar machineagent.jar • With extensions: java -Xmx256m -Dappdynamics.agent.maxMetrics=10000 -jar machineagent.jar Copyright © 2015 AppDynamics. All rights reserved. 37
  • 38. Publishing Your Extension • Remove any usernames/passwords/hostnames from configuration files • Add README.md and LICENSE files • Post the code on GitHub • Create new thread on AppDynamics Community to announce and publish! Copyright © 2015 AppDynamics. All rights reserved. 38
  • 39. Contents of Your README.md • Description • Requirements • Installation • Configuration • Metrics Produced • How to Contribute (optional) • History/Release Notes • Screenshots Copyright © 2015 AppDynamics. All rights reserved. 39
  • 41. Documentation • Extensions and Custom Metrics • Build a Monitoring Extension Using Java • Build a Monitoring Extension Using Scripts • Machine Agent HTTP Listener Copyright © 2015 AppDynamics. All rights reserved. 41
  • 42. Sample Java code • Apache Monitoring Extension • URL Monitoring Extension • Follow along as I finish these extensions! https://github.com/tradel/collectd-monitoring-extension https://github.com/tradel/file-count-monitoring-extension Copyright © 2015 AppDynamics. All rights reserved. 42

Hinweis der Redaktion

  1. This example is in bash, but you can use any language that is capable of writing to stdout: Python, Perl, Ruby, Bash, etc.