There are several ways to “monitor the SQL service”. It would be interesting what is your monitoring goal? Is it enough for you to know the TCP port from the SQL service is available over the network, then the generic TCP monitor is a good choice. Basically it is the same as you would try to use telnet against the port and see if you can establish a connection.
If you want to be more accurate, you can use the JDBC Monitor. It will try to establish not just a TCP session, it will also establish a database connection against a specific database with credentials.
If you want to go much deeper you can use the JDBC Query Monitor which allows you to run specific queries and evaluates the query result from that output.
You have to weigh the choices. The deeper you go with the monitoring it gets more expensive in terms of resource usage from the monitoring system as well as the monitored server. Additionally maintenance gets more expensive, cause the deeper you monitor the application you leak application specific configurations into your monitoring system, e.g. SQL queries and credentials can change and need to be changed in the monitoring system as well. In very generic terms, if you run the JDBC Query Monitor you won’t need the JDBC Monitor or the TCP Monitor cause it will monitor those cases anyways.
If your “monitor SQL service” requirements also contain performance metrics you need to look into the JDBC Collector which allows you to persist metrics from SQL queries as time series data which can also be used for thresholding.
The more you go into detail with monitoring applications, it becomes more complicated to “detect” a service during provisioning, cause if you have more than 1 applications you need to deal with credentials and queries can be specific to applications.
From my very personal experience maintaining monitoring systems in a production environment, I would not use “Service Detectors” during provisioning at all. You need confidence and control in your monitoring environment which you don’t have when you use “Service Detectors”, but I think this will exceed the topic of this thread.