30 May 2024 09:32 PM - last edited on 12 Aug 2024 07:35 AM by Michal_Gebacki
The "Generic DB Query Plugin" is one of the most used extensions by our customers. When is the ETA for the migration to EF2?
30 May 2024 09:43 PM
Hi,
Most use cases can already be handled in EF2 through the declarative SQL data sources.
Two missing features are cron scheduling and custom connection strings. Both of which is being worked on.
Our services department is also busy with an app to provide a UI experience for the different data sources for customers who don’t want to write YAML. SQL support is the first one planned.
31 May 2024 10:08 AM
While an app is OK, please don't forget that this extension is widely used in Managed environments.
It's also very important that the new extension use the same metrics, so clients don't loose the timeseries that they already have.
31 May 2024 01:21 PM
There is no new extension planned. You can call the metrics whatever you want in the yaml, including custom.db.query just like the existing one does
The app is just to help people with creating the YAML. It will not unlock new possibilities other than that.
31 May 2024 01:43 PM
If I understand correctly, Dynatrace will not be migrating the Generic DB Query to EF2???
31 May 2024 01:48 PM
Correct. The EF2 method is to use the SQL data source to query databases. As these extensions then are signed together with the query it is a lot more secure.
As our services team saw the need to make it even easier than writing a YAML, we are creating the app to have a UI for creating, modifying and signing YAMLs.
Managed customers are directed towards the vscode addon to simplify the creation of the YAML.
31 May 2024 02:32 PM
Writing your own SQL queries using extensions is easier than it sounds. I also agree with Mike that just cron scheduling (e.g. run this query exactly on every hour aligned) and your own custom JDBC string are missing. It is possible to define the interval as of today, it's just not configurable in the extension config/ui.
31 May 2024 02:37 PM
I'm without words, again!
First of all, Dynatrace stated this in November:
https://www.dynatrace.com/news/blog/unmatched-scalability-and-security-of-dynatrace-extensions-now-a...
So, now we know that this is not true!
More, I'm pretty sure multiple clients we have and that use it are going to be quite unhappy! Having to write the yaml, is 1 or 2 orders of magnitude difficultier than it is today. And changing one query, we have to do it all over again??? Someone hasn't really thought how clients use Dynatrace, or at least, should be using it...
31 May 2024 09:21 PM
Hello Antonio, I completely agree with your opinion here.
Most clients would find it extremely cumbersome to have to define everything inside the YAML.
We have this concern as well...
31 May 2024 09:21 PM
Great comment @AntonioSousa 👌
31 May 2024 09:24 PM
Hello Antonio
All you just said is exactly the concerns we have with this new SLQ framework.
02 Jun 2024 09:22 PM - edited 02 Jun 2024 09:23 PM
There was an extensive answer by Darek from product management on this topic a year ago here:
https://community.dynatrace.com/t5/Extensions/Custom-Database-Queries-going-to-EF-2-0/m-p/216561
02 Jun 2024 09:37 PM
I remember this thread. At that time we were unaware that EF1 would be terminated. So, I was good with it. Now, it seems more and more clear to me that we have to have a plan B for EF1 termination!
I second what @ct_27 said at the time.
And regarding what Darek said, none of it will convince the several clients I have that use the extension...
17 Oct 2024 12:51 AM
I also am struggling with having to migrate from 1.0 to a 2.0 solution. The previous plugin had a sql query length limit that we overcame with stored procedure call. Now I have to get the sql out make an application for each custom query and figure out where to store the retrieved values in DT. BTW how does one reference where to put the values from DB. Dimensions??
example is my apps src extension.yml
- group: foo-appointments
query: >-
select count(*) As Number_Of_Appointments
from AppSch_Appointment
where CONVERT (Date, created_date) = CONVERT (Date, GETDATE()) and
DATEPART (HOUR, created_date) = DATEPART(HOUR, (DATEADD(HOUR,-1,
GETDATE())))
group by cast(created_date as date) , datename(dw, created_date)
metrics:
- key: foo-appointments.number-of-appointments
value: col:Number_Of_Appointments
dimensions: []. <--here what does that look like as far as string..