18 Dec 2025 08:01 PM
Hello,
I would like to add new metrics to the existing Informix extension.
I noticed that Dynatrace provides an Extension Creator app, and I would like to use it for this purpose. However, I have a few questions and would appreciate your guidance:
Is it recommended to add the new metrics to the existing Informix extension, or is it better to create a new extension?
If a new extension is created, how would both extensions work together?
Are there any best practices or limitations I should be aware of in this scenario?
Best regards
Solved! Go to Solution.
18 Dec 2025 08:38 PM
If you want to clone a Dynatrace extension, you have to create a new extension. It will have a different name, but it can have the same metrics, but with different data/periods/dimensions. Beware that there are some gotchas, some of which have not been discussed publicly...
Both extensions can then work together, and I have several cases where it happens. But you should be careful to not replicate data, is it certainly is not in your interest. This is valid for all types of extensions, including the python ones.
There are some limitations, as I hinted above. One example: if you distribute a classic dashboard and aren't careful, you'll end up with two exact the same dashboards, and if you don't tweak them, you might not be able to get rid of them as you are not able to do that with Dynatrace dashboards.
18 Dec 2025 09:07 PM
Could not agree more with @AntonioSousa . I'd not recommend cloning the extension, but instread just create your own extension that will get the data you don't have and you will run both.
But I also had one case to "clone" the Postgres as it performs queries which fail on particular Postgres versions and those queries throw error messages into the Postgres log, which, unsurprisingly, the DBA does not like. I cloned the extension, fixed the errors by reorganising featureSets. However, you can't build the exact same version, so I kept the Dynatrace original version installed (unconfigured), and my version does not include any topology/dashboards/alerts/ or metadata. It just scrapes the metrics instead of the original one. So it does not collide at all.
18 Dec 2025 09:13 PM
Hello, thank you very much for the information. I like the idea of just using the query. Do you have an example of how you did it, please? Also, can I do this with the Custom Extension Creator?
18 Dec 2025 09:36 PM - edited 18 Dec 2025 09:38 PM
@NicoleMT Yes, certainly you can do that using the Custom Extension Creator, although I don't use it. I prefer vscode + Dynatrace VSCode plugin for developing extensions.
You choose to build a new one, with JDBC as the source and you edit the yaml:
This is quite straightforward. You then need to sign it with your certificate, which also needs to be uploaded to the ActiveGates, which will run the extension, so it's trusted.
Here is the reference for SQL data source: https://docs.dynatrace.com/docs/shortlink/sql-reference
But I'll highly recommend watching this video first if you are new to extension "development" https://www.youtube.com/watch?v=t9kHPKL9yKY
29 Dec 2025 04:36 PM
Hi, thank you for the information.
I followed the videos and the documentation and, based on what you shared, I tried to build the YAML configuration. This is the result I obtained. Could you please help me verify whether it is correct?
Additionally, I have the following question: is there any potential performance impact on the database when executing this query? If so, what timeout value would you recommend configuring?
I would really appreciate your help.
The query is the following:
jdbc: - group: Informix Fragment Usage featureSet: database timeout: "30" query: > SELECT t.tabname as table_name, f.partition as fragment_name, p.npused as used_pages, TRUNC(p.npused/16775134 * 100) as used_percent FROM systables t JOIN sysfragments f ON t.tabid = f.tabid JOIN sysptnhdr p ON f.partn = p.partnum WHERE t.tabname NOT LIKE '%_old' AND f.partition LIKE CONCAT(var:fragment_prefix, '%') AND SUBSTRING(f.partition FROM 6 FOR 11) = TO_CHAR(TODAY, '%Y%m') ORDER BY used_percent DESC dimensions: - key: table value: col:table_name - key: fragment value: col:fragment_name metrics: - key: com.empresa.informix.fragment.used_pages value: col:used_pages type: gauge metadata: displayName: Used Pages unit: Count - key: com.empresa.informix.fragment.used_percent value: col:used_percent type: gauge metadata: displayName: Used Percent unit: Percent
Featured Posts