Skip to content

Commit

Permalink
Add Kafka Producer for Analytics and User Metrics (#1143)
Browse files Browse the repository at this point in the history
Integrates Kafka-based event publishing system to track Monthly Active Users
and other analytics metrics. Implements configurable producer settings with
async mode enabled and maintains default values for batch size and retry
attempts, while adding new CLI options for Kafka configuration.

---------

Co-authored-by: Youngteac Hong <[email protected]>
  • Loading branch information
emplam27 and hackerwins authored Feb 12, 2025
1 parent 45c3259 commit 1b2718b
Show file tree
Hide file tree
Showing 33 changed files with 1,553 additions and 1,075 deletions.
611 changes: 305 additions & 306 deletions api/docs/yorkie/v1/admin.openapi.yaml

Large diffs are not rendered by default.

85 changes: 42 additions & 43 deletions api/docs/yorkie/v1/cluster.openapi.yaml
Original file line number Diff line number Diff line change
@@ -1,82 +1,81 @@
openapi: 3.1.0
info:
description:
Yorkie is an open source document store for building collaborative
description: Yorkie is an open source document store for building collaborative
editing applications.
title: Yorkie
version: v0.5.8
servers:
- description: Production server
url: https://api.yorkie.dev
- description: Local server
url: http://localhost:8080
- description: Production server
url: https://api.yorkie.dev
- description: Local server
url: http://localhost:8080
paths:
/yorkie.v1.ClusterService/DetachDocument:
post:
description: ""
requestBody:
$ref: "#/components/requestBodies/yorkie.v1.ClusterService.DetachDocument.yorkie.v1.ClusterServiceDetachDocumentRequest"
$ref: '#/components/requestBodies/yorkie.v1.ClusterService.DetachDocument.yorkie.v1.ClusterServiceDetachDocumentRequest'
responses:
"200":
$ref: "#/components/responses/yorkie.v1.ClusterService.DetachDocument.yorkie.v1.ClusterServiceDetachDocumentResponse"
$ref: '#/components/responses/yorkie.v1.ClusterService.DetachDocument.yorkie.v1.ClusterServiceDetachDocumentResponse'
default:
$ref: "#/components/responses/connect.error"
$ref: '#/components/responses/connect.error'
tags:
- yorkie.v1.ClusterService
- yorkie.v1.ClusterService
components:
requestBodies:
yorkie.v1.ClusterService.DetachDocument.yorkie.v1.ClusterServiceDetachDocumentRequest:
content:
application/json:
schema:
$ref: "#/components/schemas/yorkie.v1.ClusterServiceDetachDocumentRequest"
$ref: '#/components/schemas/yorkie.v1.ClusterServiceDetachDocumentRequest'
application/proto:
schema:
$ref: "#/components/schemas/yorkie.v1.ClusterServiceDetachDocumentRequest"
$ref: '#/components/schemas/yorkie.v1.ClusterServiceDetachDocumentRequest'
required: true
responses:
connect.error:
content:
application/json:
schema:
$ref: "#/components/schemas/connect.error"
$ref: '#/components/schemas/connect.error'
application/proto:
schema:
$ref: "#/components/schemas/connect.error"
$ref: '#/components/schemas/connect.error'
description: ""
yorkie.v1.ClusterService.DetachDocument.yorkie.v1.ClusterServiceDetachDocumentResponse:
content:
application/json:
schema:
$ref: "#/components/schemas/yorkie.v1.ClusterServiceDetachDocumentResponse"
$ref: '#/components/schemas/yorkie.v1.ClusterServiceDetachDocumentResponse'
application/proto:
schema:
$ref: "#/components/schemas/yorkie.v1.ClusterServiceDetachDocumentResponse"
$ref: '#/components/schemas/yorkie.v1.ClusterServiceDetachDocumentResponse'
description: ""
schemas:
connect.error:
additionalProperties: false
description: "Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation"
description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation'
properties:
code:
enum:
- CodeCanceled
- CodeUnknown
- CodeInvalidArgument
- CodeDeadlineExceeded
- CodeNotFound
- CodeAlreadyExists
- CodePermissionDenied
- CodeResourceExhausted
- CodeFailedPrecondition
- CodeAborted
- CodeOutOfRange
- CodeInternal
- CodeUnavailable
- CodeDataLoss
- CodeUnauthenticated
- CodeCanceled
- CodeUnknown
- CodeInvalidArgument
- CodeDeadlineExceeded
- CodeNotFound
- CodeAlreadyExists
- CodePermissionDenied
- CodeResourceExhausted
- CodeFailedPrecondition
- CodeAborted
- CodeOutOfRange
- CodeInternal
- CodeUnavailable
- CodeDataLoss
- CodeUnauthenticated
examples:
- CodeNotFound
- CodeNotFound
type: string
message:
type: string
Expand Down Expand Up @@ -186,13 +185,13 @@ components:
title: client_id
type: string
documentSummary:
$ref: "#/components/schemas/yorkie.v1.DocumentSummary"
$ref: '#/components/schemas/yorkie.v1.DocumentSummary'
additionalProperties: false
description: ""
title: document_summary
type: object
project:
$ref: "#/components/schemas/yorkie.v1.Project"
$ref: '#/components/schemas/yorkie.v1.Project'
additionalProperties: false
description: ""
title: project
Expand All @@ -209,13 +208,13 @@ components:
description: ""
properties:
accessedAt:
$ref: "#/components/schemas/google.protobuf.Timestamp"
$ref: '#/components/schemas/google.protobuf.Timestamp'
additionalProperties: false
description: ""
title: accessed_at
type: object
createdAt:
$ref: "#/components/schemas/google.protobuf.Timestamp"
$ref: '#/components/schemas/google.protobuf.Timestamp'
additionalProperties: false
description: ""
title: created_at
Expand All @@ -236,7 +235,7 @@ components:
title: snapshot
type: string
updatedAt:
$ref: "#/components/schemas/google.protobuf.Timestamp"
$ref: '#/components/schemas/google.protobuf.Timestamp'
additionalProperties: false
description: ""
title: updated_at
Expand Down Expand Up @@ -265,7 +264,7 @@ components:
title: client_deactivate_threshold
type: string
createdAt:
$ref: "#/components/schemas/google.protobuf.Timestamp"
$ref: '#/components/schemas/google.protobuf.Timestamp'
additionalProperties: false
description: ""
title: created_at
Expand All @@ -291,7 +290,7 @@ components:
title: secret_key
type: string
updatedAt:
$ref: "#/components/schemas/google.protobuf.Timestamp"
$ref: '#/components/schemas/google.protobuf.Timestamp'
additionalProperties: false
description: ""
title: updated_at
Expand All @@ -304,7 +303,7 @@ components:
name: Authorization
type: apiKey
security:
- ApiKeyAuth: []
- ApiKeyAuth: []
tags:
- description: ClusterService is a service that provides an API for Cluster.
name: yorkie.v1.ClusterService
- description: ClusterService is a service that provides an API for Cluster.
name: yorkie.v1.ClusterService
Loading

0 comments on commit 1b2718b

Please sign in to comment.