Enviar pesquisa
Carregar
Webinar - Building Custom Extensions With AppDynamics
•
Transferir como PPTX, PDF
•
4 gostaram
•
2,671 visualizações
Todd Radel
Seguir
How to build extensions to bring your own metrics into AppDynamics
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 43
Baixar agora
Recomendados
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
AppDynamics
Cgroups in android
Cgroups in android
ramalinga prasad tadepalli
Apostila pic 16f877
Apostila pic 16f877
Luciano Zica
Event storming recipes
Event storming recipes
Alberto Brandolini
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Adriano Teixeira de Souza
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for Integration
Kim Clark
Understanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManager
Lee Calcote
Introdução a linguagem Python
Introdução a linguagem Python
Luciano Ramalho
Recomendados
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
AppDynamics
Cgroups in android
Cgroups in android
ramalinga prasad tadepalli
Apostila pic 16f877
Apostila pic 16f877
Luciano Zica
Event storming recipes
Event storming recipes
Alberto Brandolini
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Adriano Teixeira de Souza
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for Integration
Kim Clark
Understanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManager
Lee Calcote
Introdução a linguagem Python
Introdução a linguagem Python
Luciano Ramalho
仮想DOMを理解する
仮想DOMを理解する
K K
Project: People - Podstawy testów użytkowych
Project: People - Podstawy testów użytkowych
Project: People
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
Marcello Thiry
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
Lorenzo Miniero
Mapeamento objeto relacional
Mapeamento objeto relacional
Reinaldo Coelho Sartorelli
Scheduling in Android
Scheduling in Android
Opersys inc.
Introdução a estruturas de dados em python
Introdução a estruturas de dados em python
Alvaro Oliveira
8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdf
Mikhail Andronov
Python - Programação funcional
Python - Programação funcional
fabiocerqueira
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
Iván López Martín
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
Emerson Macedo
Odoo External API
Odoo External API
Odoo
The 16th Intl. Workshop on Search-Based and Fuzz Testing
The 16th Intl. Workshop on Search-Based and Fuzz Testing
Sebastiano Panichella
Tabela ascii
Tabela ascii
cjaraujo2
High performance network programming on the jvm oscon 2012
High performance network programming on the jvm oscon 2012
Erik Onnen
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Gleyciana Garrido
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Intel® Software
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Andrew Rota
Tipos de dados em MySQL
Tipos de dados em MySQL
Daniel Brandão
Troubleshooting your Elasticsearch cluster like an Elastic Support Engineer
Troubleshooting your Elasticsearch cluster like an Elastic Support Engineer
Imma Valls Bernaus
Cisco Tetration Analytics
Cisco Tetration Analytics
Cisco do Brasil
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
AppDynamics
Mais conteúdo relacionado
Mais procurados
仮想DOMを理解する
仮想DOMを理解する
K K
Project: People - Podstawy testów użytkowych
Project: People - Podstawy testów użytkowych
Project: People
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
Marcello Thiry
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
Lorenzo Miniero
Mapeamento objeto relacional
Mapeamento objeto relacional
Reinaldo Coelho Sartorelli
Scheduling in Android
Scheduling in Android
Opersys inc.
Introdução a estruturas de dados em python
Introdução a estruturas de dados em python
Alvaro Oliveira
8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdf
Mikhail Andronov
Python - Programação funcional
Python - Programação funcional
fabiocerqueira
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
Iván López Martín
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
Emerson Macedo
Odoo External API
Odoo External API
Odoo
The 16th Intl. Workshop on Search-Based and Fuzz Testing
The 16th Intl. Workshop on Search-Based and Fuzz Testing
Sebastiano Panichella
Tabela ascii
Tabela ascii
cjaraujo2
High performance network programming on the jvm oscon 2012
High performance network programming on the jvm oscon 2012
Erik Onnen
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Gleyciana Garrido
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Intel® Software
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Andrew Rota
Tipos de dados em MySQL
Tipos de dados em MySQL
Daniel Brandão
Troubleshooting your Elasticsearch cluster like an Elastic Support Engineer
Troubleshooting your Elasticsearch cluster like an Elastic Support Engineer
Imma Valls Bernaus
Mais procurados
(20)
仮想DOMを理解する
仮想DOMを理解する
Project: People - Podstawy testów użytkowych
Project: People - Podstawy testów użytkowych
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
Mapeamento objeto relacional
Mapeamento objeto relacional
Scheduling in Android
Scheduling in Android
Introdução a estruturas de dados em python
Introdução a estruturas de dados em python
8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdf
Python - Programação funcional
Python - Programação funcional
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
Odoo External API
Odoo External API
The 16th Intl. Workshop on Search-Based and Fuzz Testing
The 16th Intl. Workshop on Search-Based and Fuzz Testing
Tabela ascii
Tabela ascii
High performance network programming on the jvm oscon 2012
High performance network programming on the jvm oscon 2012
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Tipos de dados em MySQL
Tipos de dados em MySQL
Troubleshooting your Elasticsearch cluster like an Elastic Support Engineer
Troubleshooting your Elasticsearch cluster like an Elastic Support Engineer
Destaque
Cisco Tetration Analytics
Cisco Tetration Analytics
Cisco do Brasil
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 Analytics
Cisco Russia
TechWiseTV Workshop: Tetration Analytics
TechWiseTV Workshop: Tetration Analytics
Robb Boyd
AppDynamics VS New Relic – The Complete Guide
AppDynamics VS New Relic – The Complete Guide
Takipi
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 AppDynamics
AppDynamics
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
AppDynamics
Destaque
(8)
Cisco 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...
Cистема сетевой аналитики для ЦОД Cisco Tetration Analytics
Cистема сетевой аналитики для ЦОД Cisco Tetration Analytics
TechWiseTV Workshop: Tetration Analytics
TechWiseTV Workshop: Tetration Analytics
AppDynamics 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 ...
Business Transactions with AppDynamics
Business Transactions with AppDynamics
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Semelhante a Webinar - Building Custom Extensions With AppDynamics
Dev ops presentation
Dev ops presentation
Ahmed Kamel
Java springboot microservice - Accenture Technology Meetup
Java springboot microservice - Accenture Technology Meetup
Accenture Hungary
Putting Quality First through Continuous Testing
Putting Quality First through Continuous Testing
TechWell
Add Apache Web Server to your Unified Monitoring Toolkit
Add Apache Web Server to your Unified Monitoring Toolkit
AppDynamics
Industry Keynote at Large Scale Testing Workshop 2015
Industry Keynote at Large Scale Testing Workshop 2015
Wolfgang Gottesheim
Feedback on building Production-Ready Microsoft Teams Apps
Feedback on building Production-Ready Microsoft Teams Apps
Guillaume 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
Ambassador Labs
Enabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using Steeltoe
VMware Tanzu
Integration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob Davies
Judy Breedlove
AzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release Management
Sergii Kryshtop
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
Weaveworks
Ansible Automation Platform.pdf
Ansible Automation Platform.pdf
VuHoangAnh14
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
Alfonso Martino
Mulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different services
Byreddy Sravan Kumar Reddy
Ship code like a keptn
Ship code like a keptn
Rob Jahn
Daimler’s Community Approach to TAS Platform Monitoring
Daimler’s Community Approach to TAS Platform Monitoring
VMware Tanzu
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 Pipelines
Amazon Web Services
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
Tamir Dresher
Data Stack Summit 2023
Data Stack Summit 2023
Manimuthu Ayyannan
Semelhante a Webinar - Building Custom Extensions With AppDynamics
(20)
Dev ops presentation
Dev ops presentation
Java springboot microservice - Accenture Technology Meetup
Java springboot microservice - Accenture Technology Meetup
Putting 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 Toolkit
Industry 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 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
Enabling .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 Davies
AzureDay Kyiv 2016 Release Management
AzureDay Kyiv 2016 Release Management
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
Ansible Automation Platform.pdf
Ansible Automation Platform.pdf
MuleSoft 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 services
Ship code like a keptn
Ship code like a keptn
Daimler’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...
Collision 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.pdf
Data Stack Summit 2023
Data Stack Summit 2023
Último
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
RankYa
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
Zilliz
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Zilliz
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
comworks
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
UiPathCommunity
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Safe Software
Último
(20)
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
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
4.
INTRODUCTION
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
9.
SCRIPT EXTENSIONS
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
17.
JAVA EXTENSIONS
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
25.
HTTP LISTENER
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
30.
USING CUSTOM METRICS
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
35.
BEST PRACTICES
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
40.
FURTHER READING
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
43.
Thank You
Notas do Editor
This example is in bash, but you can use any language that is capable of writing to stdout: Python, Perl, Ruby, Bash, etc.
Baixar agora