This repository has been archived on 2022-08-14. You can view files and clone it, but cannot push or open issues or pull requests.

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 });
}
}