Skip to content

Instantly share code, notes, and snippets.

@viggin543
viggin543 / OMFG
Created April 1, 2020 17:44
omfg.js
calculateSubscriberVideoPanelElement(stream: any, isMemberStream: boolean) {
const { callModel, cameraModel, medium, isSupervisor } = this.props;
if (isNil(stream)) {
if (isMemberStream) {
if (callModel && callModel.sirenEndTime) {
return <SirenCounter callModel={callModel} withTokboxWrapper={true} />;
} else {
return <NoVideo medium={medium} cameraModel={cameraModel} />;
}
} else {
@viggin543
viggin543 / measure_pod_start.sh
Created April 17, 2020 18:25
a script that messures the time it takes to a single pod to become redy
#!/usr/bin/env bash
pod=$1
scheduled=`kubectl get pod $pod -o json | jq -r '.status.conditions[] | select(.type=="PodScheduled") | .lastTransitionTime' | sed 's/T/ /g' | tr -d 'Z'`
ready=`kubectl get pod $pod -o json | jq -r '.status.conditions[] | select(.type=="Ready") | .lastTransitionTime' | sed 's/T/ /g' | tr -d 'Z'`
scheduled_epoch=`date -j -u -f "%Y-%m-%d %T" "$scheduled" "+%s"` # mac os date ( linux has different
echo "${pod} sechedualed at ${scheduled_epoch}"
ready_epoch=`date -j -u -f "%Y-%m-%d %T" "$ready" "+%s"`
load_seconds=$((ready_epoch-scheduled_epoch))
echo "${pod} launch time: ${load_seconds} seconds"
@viggin543
viggin543 / server.kt
Created April 17, 2020 18:29
a simple vert.x/netty web server written in kotlin
import io.vertx.core.Vertx
import io.vertx.ext.web.Router
import java.time.Instant.now
import kotlin.math.pow
fun main() {
println("starting application ${now().epochSecond}")
val now = now()
val cores = Runtime.getRuntime().availableProcessors()
val ram = Runtime.getRuntime().maxMemory().toDouble()
@viggin543
viggin543 / deploy.yml
Created April 17, 2020 18:31
a fragment of the deployment yaml
#deployment.yaml
resources:
limits:
memory: "256Mi"
cpu: "500"
requests:
memory: "256Mi"
cpu: "150m"
...
livenessProbe:
@viggin543
viggin543 / collect_metric.sh
Created April 17, 2020 18:37
call k8s metrics service directly
kubectl get --raw /apis/metrics.k8s.io/v1beta1/namespaces/${NAMESPACE_NAME}/pods/${POD_NAME} | jq .
{
"kind": "PodMetrics",
"apiVersion": "metrics.k8s.io/v1beta1",
"metadata": {
"name": "PODNAME",
"namespace": "NAMESPACE",
"selfLink": "/apis/metrics.k8s.io/v1beta1/namespaces/NAMESPACE/pods/PODNAME",
"creationTimestamp": "2020-04-15T10:53:04Z"
},
@viggin543
viggin543 / get_pod_startup.sh
Created April 17, 2020 18:40
get_pod_startup.sh
# pod schedualed event timestamp
kubectl get pod $pod -o json | jq -r '.status.conditions[] | select(.type=="PodScheduled") | .lastTransitionTime
class BananaApi {
fun getBanana(id: String): Banana {
return Banana(Color.GREEN, 0.5, id)
}
fun deleteBanana(id: String) {
println("delete banana with id $id")
}
class BananaService {
fun getBanana(id: String): Banana {
return Banana(Color.YELLOW, 0.5, id)
}
fun createBanana(banana: CreateBanana) : Banana {
return Banana(Color.GREEN, 0.5, "random id")
}
}
data class Banana(val color: Color,
service Banana {
rpc GetBanana (GetBananaRequest) returns (BananaResponse) {}
rpc CreateBanana (CreateBananaRequest) returns (BananaResponse) {}
}
message GetBananaRequest {
string id = 1;
}
message BananaResponse {
import "google/api/annotations.proto";
service Banana {
rpc CreateBanana (CreateBananaRequest) returns (BananaResponse) {
option (google.api.http) = {
post: "/v1/example/echo"
body: "*"
};
}