First get your query working in the PromQL browser in the web interface, before sending it to the API.
Your query doesn't do what you think it does, in fact it's a pretty meaningless query. Your query is:
{__name__=~"a100_001_FT_DACA_PV|a101_401_0_PIC_PIDA_PV|avg_over_time(E002_C04_kW)"}
What you are doing is matching the timeseries name (which is in an internal label __name__) against one regular expression. So what this query means is:
Return every timeseries whose name is either "a100_001_FT_DACA_PV" or "a101_401_0_PIC_PIDA_PV" or "avg_over_timeE002_C04_kW"
(The vertical bar in a regular expression gives alternatives. Parentheses also have special meanings in a regular expression, so a(b) matches "ab")
And that's exactly what your result shows:
- one timeseries with name "a100_001_FT_DACA_PV"
- one timeseries with name "a101_401_0_PIC_PIDA_P"
- no timeseries matching name "avg_over_timeE002_C04_kW"
If you want to use average_over_time then you'll need to invest some time learning promQL. This is a function, and it applies to a range vector not an instance vector. For example,
average_over_time(a100_001_FT_DACA_PV[2h])
is a valid query: a100_001_FT_DACA_PV[2h] is a range vector, i.e. it returns all timeseries with that name, and all data covering a 2 hour period. average_over_time(...) gives you an instant vector which averages all the data points within that time range for each matching timeseries.
Here are some resources to start learning about promQL: