62 lines
1.4 KiB
JavaScript
62 lines
1.4 KiB
JavaScript
// @flow
|
|
import Metrics from "../logging/metrics";
|
|
|
|
export default class Tracing {
|
|
async onCreateDocument({
|
|
documentName,
|
|
instance,
|
|
}: {
|
|
documentName: string,
|
|
instance: any,
|
|
}) {
|
|
Metrics.increment("collaboration.create_document", { documentName });
|
|
|
|
Metrics.gaugePerInstance(
|
|
"collaboration.documents_count",
|
|
instance.getDocumentsCount()
|
|
);
|
|
}
|
|
|
|
async onAuthenticationFailed({ documentName }: { documentName: string }) {
|
|
Metrics.increment("collaboration.authentication_failed", { documentName });
|
|
}
|
|
|
|
async onConnect({
|
|
documentName,
|
|
instance,
|
|
}: {
|
|
documentName: string,
|
|
instance: any,
|
|
}) {
|
|
Metrics.increment("collaboration.connect", { documentName });
|
|
Metrics.gaugePerInstance(
|
|
"collaboration.connections_count",
|
|
instance.getConnectionsCount()
|
|
);
|
|
}
|
|
|
|
async onDisconnect({
|
|
documentName,
|
|
instance,
|
|
}: {
|
|
documentName: string,
|
|
instance: any,
|
|
}) {
|
|
Metrics.increment("collaboration.disconnect", { documentName });
|
|
Metrics.gaugePerInstance(
|
|
"collaboration.connections_count",
|
|
instance.getConnectionsCount()
|
|
);
|
|
|
|
// TODO: Waiting for `instance` available in payload
|
|
Metrics.gaugePerInstance(
|
|
"collaboration.documents_count",
|
|
instance.getDocumentsCount()
|
|
);
|
|
}
|
|
|
|
async onChange({ documentName }: { documentName: string }) {
|
|
Metrics.increment("collaboration.change", { documentName });
|
|
}
|
|
}
|