1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import { config, getBackendSrv, getGrafanaLiveSrv, setGrafanaLiveSrv } from '@grafana/runtime';
- import { liveTimer } from 'app/features/dashboard/dashgrid/liveTimer';
- import { contextSrv } from '../../core/services/context_srv';
- import { CentrifugeService } from './centrifuge/service';
- import { CentrifugeServiceWorkerProxy } from './centrifuge/serviceWorkerProxy';
- import { GrafanaLiveService } from './live';
- export const sessionId =
- (window as any)?.grafanaBootData?.user?.id +
- '/' +
- Date.now().toString(16) +
- '/' +
- Math.random().toString(36).substring(2, 15);
- export function initGrafanaLive() {
- const centrifugeServiceDeps = {
- appUrl: `${window.location.origin}${config.appSubUrl}`,
- orgId: contextSrv.user.orgId,
- orgRole: contextSrv.user.orgRole,
- liveEnabled: config.liveEnabled,
- sessionId,
- dataStreamSubscriberReadiness: liveTimer.ok.asObservable(),
- };
- const centrifugeSrv = config.featureToggles['live-service-web-worker']
- ? new CentrifugeServiceWorkerProxy(centrifugeServiceDeps)
- : new CentrifugeService(centrifugeServiceDeps);
- setGrafanaLiveSrv(
- new GrafanaLiveService({
- centrifugeSrv,
- backendSrv: getBackendSrv(),
- })
- );
- }
- export function getGrafanaLiveCentrifugeSrv() {
- return getGrafanaLiveSrv() as GrafanaLiveService;
- }
|