67 lines
1.6 KiB
JavaScript
67 lines
1.6 KiB
JavaScript
// @flow
|
|
import Metrics from "../logging/metrics";
|
|
|
|
export default class Tracing {
|
|
onLoadDocument({
|
|
documentName,
|
|
instance,
|
|
}: {
|
|
documentName: string,
|
|
instance: any,
|
|
}) {
|
|
Metrics.increment("collaboration.load_document", { documentName });
|
|
|
|
Metrics.gaugePerInstance(
|
|
"collaboration.documents_count",
|
|
instance.getDocumentsCount()
|
|
);
|
|
}
|
|
|
|
onAuthenticationFailed({ documentName }: { documentName: string }) {
|
|
Metrics.increment("collaboration.authentication_failed", { documentName });
|
|
}
|
|
|
|
onConnect({
|
|
documentName,
|
|
instance,
|
|
}: {
|
|
documentName: string,
|
|
instance: any,
|
|
}) {
|
|
Metrics.increment("collaboration.connect", { documentName });
|
|
Metrics.gaugePerInstance(
|
|
"collaboration.connections_count",
|
|
instance.getConnectionsCount()
|
|
);
|
|
}
|
|
|
|
onDisconnect({
|
|
documentName,
|
|
instance,
|
|
}: {
|
|
documentName: string,
|
|
instance: any,
|
|
}) {
|
|
Metrics.increment("collaboration.disconnect", { documentName });
|
|
Metrics.gaugePerInstance(
|
|
"collaboration.connections_count",
|
|
instance.getConnectionsCount()
|
|
);
|
|
|
|
Metrics.gaugePerInstance(
|
|
"collaboration.documents_count",
|
|
// -1 adjustment because hook is called before document is removed
|
|
instance.getDocumentsCount() - 1
|
|
);
|
|
}
|
|
|
|
onChange({ documentName }: { documentName: string }) {
|
|
Metrics.increment("collaboration.change", { documentName });
|
|
}
|
|
|
|
onDestroy() {
|
|
Metrics.gaugePerInstance("collaboration.connections_count", 0);
|
|
Metrics.gaugePerInstance("collaboration.documents_count", 0);
|
|
}
|
|
}
|