Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save 6uimorais/1e1de20bbbb2a04fe19fc73f88d6a25f to your computer and use it in GitHub Desktop.
Save 6uimorais/1e1de20bbbb2a04fe19fc73f88d6a25f to your computer and use it in GitHub Desktop.
Self Hosted Kadira APM - Docker Compose - Ubuntu

1 - Get an Ubuntu machine up and running (make sure ports 11011 and 4000 are open)

2 - Install docker + docker-compose (full_install_docker_compose.sh)

3 - Get a docker-compose.yml with mongodb, kadira-ui, kadira-engine and kadira-rma (docker-compose.yml)

3 - Run "sudo docker-compose up" (-d if you want it running on background)

4 - Access http://machineIp:4000 and login as "[email protected]" and "admin" password

5 - Create your APP, get the ID and Secret

6 - Setup kadira in your app by code or settings.json (Config)

7 - Update your app from "free" plan to "paid" to get full access at Kadira (Update App Plan)

8 - Enjoy!

Install MongoDB client if not already

$ sudo apt install mongodb-clients

Access MongoDB (make sure port 27018 is accessible)

$ mongo apm --host michineIP --port 27018

Execute update command (free, paid, startup, business, pro)

>  db.apps.update({},{$set:{plan:'pro'}},{multi:true})

Done!

Add Kadira package to your project

$ meteor add meteorhacks:kadira

Config Kadira in your code or settings.json

# code
Kadira.connect('xxxxxxxxxxx', 'xxxxxxxxxxxxxxx', {"endpoint":"http://machineIp:11011"});

#settings.json    
{  
  "kadira": {
    "appId": "xxxxxxxxxxx",
    "appSecret": "xxxxxxxxxxxxxxx",
    "options": {
        "endpoint":"http://machineIp:11011"
    }
  } 
}

You can find more advanced options here:

Link

# Source: https://github.com/mdemri/kadira-docker-compose/blob/bece9ca502f0770ce9af7abda729d081b5147368/docker-compose.yml
version: '2'
services:
kadira-engine:
image: vladgolubev/kadira-engine
environment:
- MONGO_URL=mongodb://mongodb/apm
- MONGO_SHARD_URL_one=mongodb://mongodb/apm
- PORT=11011
ports:
- "11011:11011"
restart: always
depends_on:
- mongodb
kadira-rma:
image: dkoo761/kadira-rma
environment:
- MONGO_URL=mongodb://mongodb/apm
restart: always
depends_on:
- mongodb
kadira-ui:
image: vladgolubev/kadira-ui
environment:
- MONGO_URL=mongodb://mongodb/apm
- MONGO_SHARD_URL_one=mongodb://mongodb/apm
ports:
- "4000:4000"
restart: always
depends_on:
- mongodb
mongodb:
image: mongo
ports:
- "27018:27017"
restart: always
# Source: https://gist.github.com/wdullaer/f1af16bd7e970389bad3
sudo true
wget -qO- https://get.docker.com/ | sh
COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oP "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | tail -n 1`
sudo sh -c "curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
sudo chmod +x /usr/local/bin/docker-compose
sudo sh -c "curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose"
cd /tmp
git clone https://gist.github.com/76b450a0c986e576e98b.git
cd 76b450a0c986e576e98b
sudo mv docker-cleanup /usr/local/bin/docker-cleanup
sudo chmod +x /usr/local/bin/docker-cleanup
@davinderkumar
Copy link

I have noticed that Kadira's mongo process is causing very high CPU usage even when meteor app is idle.
Meteor's mongo process is consuming less than 1% of cpu.
Kadira's mongo version is 3.4.9, and Meteor's mongo is 3.4.1.

@davinderkumar
Copy link

I noticed that it was because my apm collection size was 10GB and as there are no indexes configured so it was causing lot of CPU usage.
After creating indexes it is better now. I will cleanup the old data as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment