Skip to content

jitsi-contrib/jitsi-aws-cdk

Repository files navigation

Jitsi AWS CDK

A collection of TypeScript CDK stack constructs designed for deploying Jitsi Utilities on AWS.

CloudWatch Dashboard

The CloudWatchDashboard construct creates a CloudWatch dashboard with pre-configured widgets tailored for visually monitoring Jitsi services. This setup requires existing CloudWatch log groups and streams that collect logs from Jitsi services.

Jibri Example Dashboard

Prerequisites: Sending Docker Container Logs to CloudWatch

To forward service logs from Docker containers to CloudWatch, use the awslogs log driver. Below is an example configuration for your docker-compose.yml file to send logs to CloudWatch:

logging:
  driver: awslogs
  options:
    awslogs-group: ${AWSLOGS_GROUP}
    awslogs-region: eu-central-1
    tag: '{{ with split .ImageName ":" }}{{join . "_"}}{{end}}-{{.ID}}'

Usage

You can integrate the CloudWatchDashboard construct into your CDK stack as shown below. The default logStream prefix used by various widgets follows the format <ImageName>_ID-Identifier (e.g., jitsi/web_). You can customize this by passing a different prefix to the logStreamPrefix parameter.

import { JitsiCloudWatchDashboard } from '@jitsi-contrib/jitsi-aws-cdk'

export class ConferenceStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props: cdk.StackProps) {
    super(scope, id, props)
    const myJitsiDashboard = new JitsiCloudWatchDashboard(this, 'JitsiDashboard', {
      dashboardId: 'jitsi',
    })
    /* Add widgets */
    const logGroupName = '/aws/ecs/jitsi-meet'
    myJitsiDashboard.addWeb(logGroupName)
  }
}

Additionally, all widget functions are available as standalone methods in the module. You can use them to add widgets to your own dashboard without instantiating the JitsiCloudWatchDashboard construct.

import { jitsiWidgetsJibri } from '@jitsi-contrib/jitsi-aws-cdk'
import { Dashboard } from 'aws-cdk-lib/aws-cloudwatch'

export class ConferenceStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props: cdk.StackProps) {
    super(scope, id, props)
    const myDashboard = new Dashboard(this, 'MyDashboard')
    jitsiWidgetsJibri(myDashboard, '/aws/ecs/jitsi-meet')
  }
}

Special Thanks

The initial concept was developed by Certible, an independent organization that conducts certification exams worldwide.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published