Skip to content

Instantly share code, notes, and snippets.

View niedbalski's full-sized avatar
Be humble and stay focused

Jorge Niedbalski niedbalski

Be humble and stay focused
View GitHub Profile
@niedbalski
niedbalski / mongodb_collection_sizes.js
Created April 28, 2020 16:46 — forked from freyes/mongodb_collection_sizes.js
List mongodb collections in descending order of size. Helpful for finding largest collections. First number is "size," second is "storageSize."
# for juju on xenial
cat << EOF > /tmp/a.js
db = db.getSiblingDB('juju');
var collectionNames = db.getCollectionNames(), stats = [];
collectionNames.forEach(function (n) { stats.push(db[n].stats()); });
stats = stats.sort(function(a, b) { return b['size'] - a['size']; });
for (var c in stats) { print(stats[c]['ns'] + ": " + stats[c]['size'] + " (" + stats[c]['storageSize'] + ")"); }
EOF
/usr/lib/juju/mongo3.2/bin/mongo --sslAllowInvalidCertificates --ssl -u admin -p $(grep oldpassword /var/lib/juju/agents/machine-0/agent.conf | awk -e '{print $2}') localhost:37017/admin /tmp/a.js
LB_ID="6899b9b1-2bb7-4771-999f-6cced80cc321"
LB_DATA=$(neutron lbaas-loadbalancer-show ${LB_ID} --format yaml)
LB_LISTENERS_ID=$(echo -e "$LB_DATA" | awk -F'"' '/listeners/ {print $4}')
LB_POOL_ID=$(echo -e "$LB_DATA" | awk -F'"' '/pools/ {print $4}')
LB_HEALTH_ID=$(neutron lbaas-pool-show ${LB_POOL_ID} | awk '/healthmonitor_id/ {print $4}')
neutron lbaas-listener-delete "${LB_LISTENERS_ID}"
neutron lbaas-healthmonitor-delete "${LB_HEALTH_ID}"
neutron lbaas-pool-delete "${LB_POOL_ID}"
neutron lbaas-loadbalancer-delete "${LB_ID}"
@niedbalski
niedbalski / monitor-mongorestore.sh
Created December 6, 2019 14:25
monitor-mongorestore.sh
#!/bin/bash
dbpass=$(grep statepassword /var/lib/juju/agents/machine-*/agent.conf | cut -d' ' -f2)
while true; do mongo 127.0.0.1:37017/juju -u "machine-0" -p "$dbpass" --sslAllowInvalidCertificates --ssl --authenticationDatabase admin --eval "printjson(db.stats())" | grep -Ei '(datasize|storage|objects)' && sleep 1;done
@niedbalski
niedbalski / sockstats-report.sh
Last active December 3, 2019 17:41
sockstats-report.sh
#!/bin/bash
# gather metrics about sockstat and buffer size.
currdate=$(date +"%m-%d-%Y")
timeout=${1:-600}
every=${2:-1}
basepath=${3:-./sockstat-report-${currdate}/}
function watch_it() {
timeout $1 watch -t -n $2 "cat $3 | tee -a ${basepath}$(basename ${3})_${currdate}.log" &>/dev/null &
@niedbalski
niedbalski / check-sockstats.sh
Created December 3, 2019 17:26
check-sockstats.sh
#!/bin/bash
#
# gather metrics about sockstat and buffer size.
#
timeout=${1:-600}
every=${2:-1}
function watch_it() {
timeout $1 watch -t -n $2 "cat $3 | tee -a $(basename ${3})_$(date +"%m-%d-%Y").log" &>/dev/null &
@niedbalski
niedbalski / search-refs.sh
Created October 16, 2019 18:09
search-refs.sh
for f in $(ldd /usr/sbin/named|cut -d" " -f1 | cut -d "." -f1); do sudo apt-cache search $f | grep dbgsym | grep $f | cut -d " " -f1| xargs apt -yyq install;done
@niedbalski
niedbalski / update-hosts-juju.py
Created August 20, 2019 15:53
update-hosts-juju.py
#!/usr/bin/env python
import subprocess
import yaml
import sys
def juju_status(juju_env=None):
cmd = ['juju', 'status', '--format=yaml']
status_raw = subprocess.check_output(cmd)
return yaml.safe_load(status_raw)
@niedbalski
niedbalski / charmhead.sh
Created June 10, 2019 18:48
charmhead.sh
function charmhead() {
if [ ! ${#@} -ge 2 ]; then
echo "usage ./$0 charm revision" && return;
fi
q=$(curl -s https://api.jujucharms.com/charmstore/v5/$1-$2/archive/repo-info | python -c "import sys, re; q=map(lambda x: re.search('.*commit-short\: (.*)', x), sys.stdin.readlines()); print(q[1].group(1))")
if [ -n "$q" ]; then
echo "$q";
else
echo "Not found revision for charm: $1"
fi
@niedbalski
niedbalski / gist:c6bc61ec836a1ec55bbfd9336c4f228e
Created June 3, 2019 22:25
check that memcached is reacheable from ncc
#!/bin/bash
# ./{0} nova-cloud-controller
units=$(juju status $1 | grep -E '[a-z\-]+\/[0-9]+' | awk '{print $1}' | sed s'/.$//')
for unit in ${units}; do
relations=$(juju run --unit ${unit} 'relation-ids memcache')
for relation in ${relations}; do
unit_list=$(juju run --unit ${unit} "relation-list -r ${relation}")
for related in ${unit_list}; do
addr=$(juju run --unit ${unit} "relation-get -r ${relation} private-address ${related}")
@niedbalski
niedbalski / juju-pass.go
Created May 2, 2019 12:43
juju-pass.go
package main
import (
"fmt"
"os"
"github.com/juju/utils"
)
const MIN_LEN = 30