D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
annotations
/
Filename :
events_processing.ts
back
Copy
import { concat, every, find, groupBy, head, map, partition } from 'lodash'; export function dedupAnnotations(annotations: any) { let dedup = []; // Split events by annotationId property existence const events = partition(annotations, 'id'); const eventsById = groupBy(events[0], 'id'); dedup = map(eventsById, (eventGroup) => { if (eventGroup.length > 1 && !every(eventGroup, isPanelAlert)) { // Get first non-panel alert return find(eventGroup, (event) => { return event.eventType !== 'panel-alert'; }); } else { return head(eventGroup); } }); dedup = concat(dedup, events[1]); return dedup; } function isPanelAlert(event: { eventType: string }) { return event.eventType === 'panel-alert'; }