Goose data are not appearing in Grafana


Please find my analysis and queries, please review them and clarify.

PMU data (IEC 61850-90-5) is streaming data continuously. Whereas goose data is arriving based on events (e.g. open/close).

Below logic is implemented in openHistorian’s Grafana Service to fetch the PMU data:

• Grafana UI is requesting data for specific interval (e.g last 5 mins data).
• openHistorian Grafana service is calculating the data resolution for given interval using some

Sample code:

long range = (stopTime - startTime). Ticks;

if (range <= TimeSpan.TicksPerHour && !measurementIDs.Any(measurementID => (metadata.TryGetValue(measurementID, out row) ? int.Parse(row[“FramesPerSecond”].ToString()) : 1) > 1)) return Resolution.Full;

if (range <= Ticks.PerMinute) return Resolution.Full;
if (range <= Ticks.PerMinute * 5L) return Resolution.TenPerSecond;
if (range <= Ticks.PerMinute * 30L) return Resolution.EverySecond;
if (range <= Ticks.PerHour * 3L) return Resolution.Every10Seconds;

When Grafana requesting data for specific time interval, resolution always falling like Resolution.TenPerSecond or Resolution.Every10Seconds with respective of interval length (ticks).

Once resolution is calculated then Grafana service is fetching the data from Historian data service and return them to Grafana UI.

According to Goose data, resolution must be “Full”, because Goose data will not fall under any variations or interval like TenPersecond or EverySecond.

My Queries:

Is there any possibility to identify whether this measurement id is belonging to goose device?


Is there any way to access openHistorian database from “OpenHistorian.Adapters”?
Specifically, TrendValueAPI.cs file.

From within Grafana for this lower resolution data I would use the Interval function with a value of zero:

Hi Ritchie,

I was trying to configure the Grafana GSF function, but I’m getting “Invalid request error” in browser.

I tried below
My Goose Measurement ID is “ABC_GOOSE-DV1”
This data will be occurring randomly, not sequential manner.

Time duration : Last 6 hours
Interval function
Interval(0,NanoSecond, ABC_GOOSE-DV1)

Can you please provide me a sample interval function to handle this scenario?
Basically I need to pull all goose data without any interval for this Measurement ID (ABC_GOOSE-DV1).

Please help.

Note that, I put “NonoSecond” as least option. I don’t want any interval, need full data.

Thanks & Regards

Hi Ritchie/Stephen,

Please help on this. This is my urgent requirement.


What happens when you try this:

Interval(0, ABC_GOOSE-DV1)

Hi Ritchie,
I tried below expression, no response. However looks like this expression is not correct. Please confirm
Goose Intervel1

Also I tried with Nano second, I got below error in code level.
GooseInterval with Nonosecond

Thanks & Regards

Try switching to “Type: Text Editor” and entering the text directly as it does not look like it’s picking up the function correctly in the “Element List” picker expression.

Hi Ritchie,

thanks for your information, its working fine.

Thanks & Regards