Skip to content

Instantly share code, notes, and snippets.

let
blue = "000096";
white = "ffffff";
green = "009600";
orange = "ff7700";
dark-orange = "803500";
red = "ff0000";
in
''
g logo ${white}
@simonswine
simonswine / phlare.py
Created June 12, 2023 16:06
Open Phlare symobls with panda
import pandas as pd
block = '01H2FK73D796PRDR32PGGMKV2H/'
mappings = pd.read_parquet(block+'mappings.parquet', engine='pyarrow')
strings = pd.read_parquet(block+'strings.parquet', engine='pyarrow')
locations = pd.read_parquet(block+'locations.parquet', engine='pyarrow')
stacktraces = pd.read_parquet(block+'stacktraces.parquet', engine='pyarrow')
functions = pd.read_parquet(block+'functions.parquet', engine='pyarrow')
def resolve_strings(df, columns=[]):
@simonswine
simonswine / loki.river
Created May 24, 2023 09:20
Grafana Agent Flow config for forwarding logs
logging {
level = "info"
format = "logfmt"
}
discovery.kubernetes "pods" {
role = "pod"
}
discovery.relabel "local_pods" {
@simonswine
simonswine / tshark.sh
Last active June 16, 2021 15:55
How to decode GRPC with tshark
# configure protobuf search paths
# ensure you are in a cloned loki root path
cat > ~/.config/wireshark/protobuf_search_paths <<EOF
"$(pwd)/pkg/logproto","TRUE"
"$(pwd)","FALSE"
"$(pwd)/vendor","FALSE"
"/nix/store/drrmxvscqaa6521a46lqwkhhv82qr88g-source/vendor/github.com/gogo/protobuf/protobuf","FALSE"
EOF
# capture and decode 9095 as http2
@simonswine
simonswine / monitor-do-not-compare-connector.patch
Created February 7, 2021 10:49
Mutter patch to not compare connectors
From 7a8092b5a262095f02d97c62d56a82d856b66500 Mon Sep 17 00:00:00 2001
From: Christian Simon <simon@swine.de>
Date: Sun, 7 Feb 2021 10:42:48 +0000
Subject: [PATCH] hack: Do not compare connector
Necessary for my Thunderbolt adapter on X1 Carbon
---
src/backends/meta-monitor.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
@simonswine
simonswine / cortex-week-numbers.py
Last active October 30, 2020 17:46
Calculate the time range in cortex's weekly tables
from datetime import datetime,timedelta
from pytz import timezone
tz = timezone('America/Los_Angeles')
period = 7*24*3600
for index in range (2648, 2654):
index_from = datetime.fromtimestamp(index*period,tz=tz)
index_to = datetime.fromtimestamp((index+1)*period-1,tz=tz)
print ('index %d: from %s to %s' % (index, index_from.isoformat(), index_to.isoformat()))
@simonswine
simonswine / rules.yaml
Created August 27, 2020 15:35
Static recording rule to manage expected instances
- expr: 1
labels:
instance: db1
cloud: aws
record: expected_instances
- expr: 1
labels:
instance: db2
cloud: azure
record: expected_instances
@simonswine
simonswine / main.go
Last active September 1, 2020 13:23
Golang DNS test
$ GODEBUG=netdns=cgo+1 go run main.go
go package net: using cgo DNS resolver
2020/08/26 11:15:12 #01 212.58.233.253:443
2020/08/26 11:15:12 #02 212.58.237.251:443
2020/08/26 11:15:13 #03 212.58.233.251:443
2020/08/26 11:15:13 #04 212.58.233.251:443
2020/08/26 11:15:13 #05 212.58.237.253:443
2020/08/26 11:15:13 #06 212.58.237.254:443
2020/08/26 11:15:14 #07 212.58.237.254:443
2020/08/26 11:15:14 #08 212.58.233.254:443
#!/usr/bin/awk -f
BEGIN {
D="cd /overlay/upper/usr/lib/opkg/info&&"
C=D"ls *.list"
S="sort -n"
while(C|getline>0) {
P=substr(F=$1,1,length($1)-5)
J=D"du -sk $(cat "F")"
s=0
while(J|getline>0) {
@simonswine
simonswine / create-kubeconfig-from-service-account.sh
Created August 30, 2019 16:19
Create kubeconfig from service account
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
# ensure service account exists
kubectl apply -f - >&2 <<EOF
apiVersion: v1
kind: ServiceAccount