For HTTP based data sources you can use the following metrics (availability may vary depending on Grafana version, the more recent the better):
grafana_datasource_request_duration_seconds{code="200",datasource="ClickHouse",method="post",quantile="0.5"} 0.190821535
grafana_datasource_request_duration_seconds{code="200",datasource="ClickHouse",method="post",quantile="0.9"} 0.380887107
grafana_datasource_request_duration_seconds{code="200",datasource="ClickHouse",method="post",quantile="0.99"} 0.491507017
grafana_datasource_request_duration_seconds_sum{code="200",datasource="ClickHouse",method="post"} 2.266877715
grafana_datasource_request_duration_seconds_count{code="200",datasource="ClickHouse",method="post"} 10
# HELP grafana_datasource_request_in_flight A gauge of outgoing datasource requests currently being sent by Grafana
# TYPE grafana_datasource_request_in_flight gauge
grafana_datasource_request_in_flight{datasource="ClickHouse"} 0
# HELP grafana_datasource_request_total A counter for outgoing requests for a datasource
# TYPE grafana_datasource_request_total counter
grafana_datasource_request_total{code="200",datasource="ClickHouse",method="post"} 10
# HELP grafana_datasource_response_size_bytes summary of datasource response sizes returned to Grafana
# TYPE grafana_datasource_response_size_bytes summary
grafana_datasource_response_size_bytes{datasource="ClickHouse",quantile="0.5"} 130
grafana_datasource_response_size_bytes{datasource="ClickHouse",quantile="0.9"} 130
grafana_datasource_response_size_bytes{datasource="ClickHouse",quantile="0.99"} 130
grafana_datasource_response_size_bytes_sum{datasource="ClickHouse"} 1297
grafana_datasource_response_size_bytes_count{datasource="ClickHouse"} 10