diff --git a/.attach/7d/95e27d-d2c4-45c8-bcf0-4d82768f59c1/_20200128_225745screenshot.png b/.attach/7d/95e27d-d2c4-45c8-bcf0-4d82768f59c1/_20200128_225745screenshot.png new file mode 100644 index 0000000..8c334c5 Binary files /dev/null and b/.attach/7d/95e27d-d2c4-45c8-bcf0-4d82768f59c1/_20200128_225745screenshot.png differ diff --git a/.attach/97/f7cabe-e3d4-496f-8f5a-f6b308a9a628/_20200128_225616screenshot.png b/.attach/97/f7cabe-e3d4-496f-8f5a-f6b308a9a628/_20200128_225616screenshot.png new file mode 100644 index 0000000..18d06ad Binary files /dev/null and b/.attach/97/f7cabe-e3d4-496f-8f5a-f6b308a9a628/_20200128_225616screenshot.png differ diff --git a/.attach/aa/a8721b-af98-45b9-b295-c7c1447930e4/_20200128_225646screenshot.png b/.attach/aa/a8721b-af98-45b9-b295-c7c1447930e4/_20200128_225646screenshot.png new file mode 100644 index 0000000..d72f6a2 Binary files /dev/null and b/.attach/aa/a8721b-af98-45b9-b295-c7c1447930e4/_20200128_225646screenshot.png differ diff --git a/aquarium.org b/aquarium.org index 31e52ca..b5e7191 100644 --- a/aquarium.org +++ b/aquarium.org @@ -60,13 +60,13 @@ Guppys, Salmler oder Schwerträger sind Anfängerfische *** Algenfresser einplanen -* Aufbau -- [ ] Cliff Motivrückwand -- [ ] Cliff Filterverkleidung -- [ ] Klebstoff -- [ ] Nährboden ? +* Aufbau [0/0] +- [X] Cliff Motivrückwand +- [X] Cliff Filterverkleidung +- [X] Klebstoff +- [X] Nährboden ? ca 2cm, nicht in allen Einsteigeranleitungen aufgeführt. -- [ ] Bodengrund +- [X] Bodengrund Sand oder Kies - abhängig von Bewohnenern Sand oder Kies durchspülen, bevor er eingelassen wird. @@ -74,25 +74,25 @@ Guppys, Salmler oder Schwerträger sind Anfängerfische Schräg nach hinten einfüllen, da bessere Wirkung beim Hineinschauen. 5-10 cm Hoch -- [ ] Red Moor Root Wurzeln -- [ ] Dragon Stone +- [X] Red Moor Root Wurzeln +- [X] Dragon Stone -- [ ] Eleoquaris acicularis Mini (vorne) -- [ ] Gratiola viscidula (vorne) -- [ ] Enchinodrus 'Reni' (mitte) -- [ ] Sagittaria Subulata (mitte) -- [ ] Pogostenum errectus (hinten) -- [ ] versicularia ferriei 'Weeping' (a bissle auf Wurzeln) -- [ ] klebstoff dazu ? -- [ ] Planzpinzete +- [X] Eleoquaris acicularis Mini (vorne) +- [X] Gratiola viscidula (vorne) +- [X] Enchinodrus 'Reni' (mitte) +- [X] Sagittaria Subulata (mitte) +- [X] Pogostenum errectus (hinten) +- [X] versicularia ferriei 'Weeping' (a bissle auf Wurzeln) +- [X] klebstoff dazu ? +- [X] Planzpinzete ** Beleuchtung den Bewohnern entsprechend Faustregel 12h hell 12h dunkel durch Regelung, am besten langsam dimmened. Wenn zu viele Algen, Beleuchtungspause am Mittag von 2-3h einplanen. ** Technik installieren (z. B. Filter, Heizstab, Beleuchtung) -- [ ] Wasser einlassen und bepflanzen +- [X] Wasser einlassen und bepflanzen Teller aufelgen wo Wasser eingelassen wird Bei ca. 10 cm Wassser Bepflanzung beginnen. -- [ ] Einlaufphase abwarten und Wasserwerte testen lassen +- [X] Einlaufphase abwarten und Wasserwerte testen lassen diff --git a/ausbau/esszimmer.org b/ausbau/esszimmer.org index b1df989..1c0e8ad 100644 --- a/ausbau/esszimmer.org +++ b/ausbau/esszimmer.org @@ -1,12 +1,11 @@ #+TITLE: Esszimmer Ausbauplan -* Boden [3/4] +* Boden [2/4] ** DONE Teppich raus CLOSED: [2019-07-06 Sat 23:30] ** DONE OSB legen CLOSED: [2019-07-06 Sat 23:30] -** DONE Vinyl legen - CLOSED: [2019-07-06 Sat 23:30] +** TODO Vinyl legen ** TODO Fussbodenleisten Ein kleines Stück fehlt noch * Steckdosen [3/4] @@ -22,8 +21,8 @@ ** DONE Einbauen CLOSED: [2019-07-06 Sat 23:28] ** TODO Abschluss unter Tür -* Fenster [1/2] -** DONE Festerbänke erneuern +* Fenster [0/2] +** TODO Festerbänke erneuern ** TODO Fester putzen * Wände [6/6] ** DONE Trennwand verstärken @@ -45,8 +44,7 @@ ** DONE Streichen CLOSED: [2019-07-06 Sat 23:28] -* Heizung [2/2] +* Heizung [1/2] ** DONE Heizkörper abauen lassen und Absperrhanen verbauen CLOSED: [2019-07-06 Sat 23:28] -** DONE Neuer Heizkörper einbauen lassen - CLOSED: [2019-07-06 Sat 23:37] +** TODO Neuer Heizkörper einbauen lassen diff --git a/monitoring.org b/monitoring.org new file mode 100644 index 0000000..621129a --- /dev/null +++ b/monitoring.org @@ -0,0 +1,116 @@ +#+TITLE: Monitoring Concept + +* Framing + +This concept will focus on monitoring a microservice in a Kubernetes cluster. + +* Why do we want to monitor? + +Monitoring service metrics enables us to + +- track and estimate long term trends, e.g. demand grows x% +- compare if and how changes affect the service +- know what usual behaviour is +- alert unusual behaviour that might lead to a total failure of the service and needs maintainance now +- track if and how often Service Level Agreements (SLAs) are not met +- understand why a failure or defect of the service happend by corellating metrics + +* What do we want to monitor? + +#+BEGIN_QUOTE +Four golden signals of monitoring are latency, traffic, errors, and +saturation. --- [[https://landing.google.com/sre/sre-book/chapters/monitoring-distributed-systems/#xref_monitoring_golden-signals][SRE Book - Google]] +#+END_QUOTE + +** Application metrics + +*** Latency + +How long does a service take to serve a request. The monitoring has to +distiguish between different routes and parameters as the workload might +differ. + +It's also important to distiguish between successfull and failed requests as +the responst time might heavily differ. + +**** Metrics + - 50, 90 and 95 percentile of the response time of successfull request per path + +*** Traffic +How much demand is the service receiving. + +**** Metrics + + - number of request per path (or nature of request, like simple database read + actions and database write actions) + +*** Errors +Which and how many errors does a service emit. This can help in tracking down +internal problems of the service, misconfigured clients or too slow responses. + +**** Metrics + +- HTTP status 5xx (internal errors) +- HTTP status 4xx (client errors) +- HTTP status 2xx violating a service level agreement (e.g. answered to slow) + +*** Saturation +How occupied is your service? This can be one or multiple of the following, +depending of the nature of your service. These could be derived by tracking +the resources most demanded. + +**** Metrics + +- used memory vs. available memory +- free disc space +- free database connections when a pool is used +- free threads when serving request in a threaded system + +In complex systems the request time of the 99th percentile can be a good +metric to show how the system saturation currently is. + + +** Service metrics + +*** Traffic +**** Metrics + +- Network Traffic inbound and outbound + +*** Saturation +**** Metrics + +- number of pods so scaling by the cloud environment is transparent + +*** Errors +**** Metrics + +- service availability + +*** Infrastructure +**** Metrics + +- deployment in progress +- configuration change applied + +** Business metrics + +Depending on the service it might be worth to monitor the business goals. + +- KPIs, e.g. number of crashs reported +- images uploaded + +* Alerting + +Alerting can be done via ticket systems, team chat channels, SMS or systems like +Pager Duty. + +It's important to find the right balance between to many and too less alerts. +This needs to be be constantly refined based on the changes and demand on the +service. + +** Who is watching the watchers ? + +If the monitoring or the alerting infrastructure has an issue a failover +system needs to be able to detect that an alert about the monitoring/alerting +being down (so called meta monitoring). diff --git a/notes.org b/notes.org index e9c2ffb..8eef1c2 100644 --- a/notes.org +++ b/notes.org @@ -4,53 +4,44 @@ * Work ** Reoccurring Tasks *** TODO Schedule Day -SCHEDULED: <2019-10-08 Tue 08:30-08:45> +SSCHEDULEDCHEDULED: <2019-10-08 Tue 08:00-08:15> *** TODO Catch-Up (Emails/Slack) -SCHEDULED: <2019-10-09 Wed 09:00-09:15 .+1d> +SCHEDULED: <2020-01-31 Fri 08:15-08:30 .+1d> +*** TODO Code Reviews :ATTACH: +SCHEDULED: <2020-01-31 Fri 09:15 .+1d> :PROPERTIES: -:LAST_REPEAT: [2019-10-08 Tue 09:24] +:LAST_REPEAT: [2020-01-30 Thu 23:18] +:ID: 7d95e27d-d2c4-45c8-bcf0-4d82768f59c1 :END: -- State "DONE" from "WAIT" [2019-10-08 Tue 09:24] -*** TODO Code Reviews -SCHEDULED: <2019-10-08 Tue 09:15 .+1d> -:PROPERTIES: -:LAST_REPEAT: [2019-10-08 Tue 09:24] -:END: -- State "DONE" from "WAIT" [2019-10-08 Tue 09:24] :LOGBOOK: CLOCK: [2019-10-08 Tue 08:24]--[2019-10-08 Tue 09:24] => 1:00 :END: +*** TODO 1 on 1 with Josip +SCHEDULED: <2020-01-22 Wed .+2w> ** Sprint Work -*** Sprint Ceremonies -** Other meetings -** fb token service -*** DONE investigate access_token null -CLOSED: [2019-10-14 Mon 10:31] -INVITE SECRET ~iPh5foo2ief4uv,i~ mit line break - -Seems weird, getting quite some errors in the live logs. Not too many but still. - -Added some more logging to the error in this [[https://github.com/BrandwatchLtd/facebook-token-service/pull/244][PR]]. - -**** DONE check fb token service logs -CLOSED: [2019-10-14 Mon 10:31] SCHEDULED: <2019-10-08 Tue> -*** TODO iventigate page token count -page tokens stored -187 on [[https://prometheus.analytics-prod.gcp0.bwcom.net/graph?g0.range_input=1h&g0.end_input=2019-10-10%2000%3A37&g0.moment_input=2019-10-10%2000%3A35%3A18&g0.expr=page_tokens_stored%7Bservice%3D%22facebook-tokens%22%7D&g0.tab=1][here]] -another 187 on [[https://prometheus.analytics-prod.gcp0.bwcom.net/graph?g0.range_input=1h&g0.end_input=2019-10-10%2000%3A37&g0.moment_input=2019-10-10%2000%3A35%3A38&g0.expr=page_tokens_stored%7Bservice%3D%22facebook-tokens%22%7D&g0.tab=1][here]] - -funnily on different nodes - -*** DONE Update graph API version -CLOSED: [2019-10-09 Wed 10:51] +*** TODO Stand-up +SCHEDULED: <2020-01-24 Wed 11:00-11:15 .+1d> +*** TODO Planning +SCHEDULED: <2020-01-23 Wed .+2w> +*** TODO Refinement +SCHEDULED: <2020-01-29 Wed .+2w> +*** TODO Review +SCHEDULED: <2020-01-22 Wed .+2w> +*** TODO Retrospective +SCHEDULED: <2020-01-22 Wed .+2w> +** Regular meetings ** Howtos -*** setup mitmproxy +*** setup mitmproxy :ATTACH: +:PROPERTIES: +:ID: aaa8721b-af98-45b9-b295-c7c1447930e4 +:END: 1. write a script to modify the response #+BEGIN_SRC python from mitmproxy import http def request(flow): if flow.request.pretty_url.find("/classifiers/trainings") >=0 and flow.request.method == 'PUT': + flow.response = http.HTTPResponse.make( 500, "failed with mitmproxy", @@ -76,50 +67,16 @@ Get ids from a json response ~{ results: [{id: 4}, ...] }~ ~curl URL | jq '.results[] | .id'~ -** Things to pass on -*** TODO kitchen duty calendar -SCHEDULED: <2019-10-10 Thu> DEADLINE: <2019-10-15 Tue> -*** TODO remove Kamil from kitchen duty calendar - SCHEDULED: <2019-10-10 Thu> -*** TODO slack calendar integrations -DEADLINE: <2019-10-15 Tue> SCHEDULED: <2019-10-10 Thu> -*** TODO dependabot assignment -SCHEDULED: <2019-10-10 Thu> ** Other -*** TODO separate randomly failing unit tests -There are some randomly failing unit tests in the frontend. -We currently retry ALL backbone frontend unit tests when they fail. - -This slows down CI and does not really help in identifying these. - -As a intermedate solution we want to separate these randomly failing unit tests -in an own directory to be able to separate them from unit tests that work fine. - -This enables us to get rid of retrying all of them when some test fails. - -**** Failing tests - -- [X] [[https://jenkins.brandwatch.net/blue/organizations/jenkins/BrandwatchLtd%2Ffrontend/detail/master/2413/pipeline][DashboardToolbarView]] -- [X] [[https://jenkins.brandwatch.net/blue/organizations/jenkins/BrandwatchLtd%2Ffrontend/detail/master/2369/pipeline][DashboardView]] -- [X] [[https://jenkins.brandwatch.net/blue/organizations/jenkins/BrandwatchLtd%2Ffrontend/detail/PR-10357/1/pipeline/105][DataDownloadCollectionView]] -- [X] [[https://jenkins.brandwatch.net/blue/organizations/jenkins/BrandwatchLtd%2Ffrontend/detail/PR-10357/2/pipeline/113][DataDownloadFormView]] -- [X] [[https://jenkins.brandwatch.net/blue/organizations/jenkins/BrandwatchLtd%2Ffrontend/detail/PR-10357/1/pipeline][InsightsCentral_wrapDashboardView]] -- [X] [[https://jenkins.brandwatch.net/blue/organizations/jenkins/BrandwatchLtd%2Ffrontend/detail/PR-10357/3/pipeline/100#step-126-log-20][GuiderView]] -- [X] [[https://jenkins.brandwatch.net/blue/organizations/jenkins/BrandwatchLtd%2Ffrontend/detail/PR-10357/6/pipeline/96][InisightsCentral FilterContextMenuView]] -- [X] QueryBuilderWriteView - : Expected: false - : Received: "The test \"QueryBuilderWriteView rendering auto fetch of preview - : results on language change does not trigger fetching when query - : is new or was not validated (validatedSettings are empty)\" - : added a new child element to body, please remove it: - :
" - - Solved most of them by stubbing jquery.showValidation in various places. -- -** Axiom WG - -* arbeitszeugnis -* sonstige services - * Private ** [[org:ausbau/][Ausbau]] +** Tonuino +*** SD Karte 1 +1) Benjamin Blümchen 3 +2) Jim Knopf +3) Liselotte und der Verschwundene Apfelkucken +4) Petterson & Findus Hahn im Korb +5) Leo Lausemaus will nich Essen/Warheit/Laune/Schalfen +6) Der Grüfello +7) Benjamin Blümchen 1 +8) Benjamin Blümchen 2 diff --git a/todo.org b/todo.org new file mode 100644 index 0000000..0b013f7 --- /dev/null +++ b/todo.org @@ -0,0 +1,4 @@ +* Inbox +** [ ] God damn it, it's important that I really figure this line out (just kidding) + +[[file:~/projects/wichtelnpy/wichteln.py::ALL_PEOPLE = [Person(**item) for item in DictReader(csvfile, delimiter=" ")\]]]