How to send Docker logs to Google Cloud Logging

In the last weeks we migrated most of our infrastructure to Google Cloud using many of the provided services (Kubernetes Engine, Stackdriver Monitoring, Container Registry, Cloud SQL, …).

Before we used logspout to aggregate all the logs generated in our Docker containers on papertrail. So we were quite happy to see that there is a good log aggregation service included out of the box for applications running on Google Kubernetes Engine (GKE).

Having most of the logs inside of Google Cloud Logging we were wondering if it is possible to ditch papertrail completely and to redirect the log from all our Docker containers to Google Cloud Logging even if they are running on external servers.

It turns out that the Google Cloud Logging driver (gcplogs) is an official Docker logging driver, already included in the Docker daemon. So here is what we had to do:

1. Create a service account in Google Cloud

This account will be used by the docker daemon to authenticate with Google Cloud. This page describes how to create a service account. Do not give him the role Owner as described in the documentation, all this account needs is the role Logs Writer.

2. Configure the docker daemon

This was the most tricky part. In the documentation we found it was always stated that the gcplogs driver uses the environment variable GOOGLE_APPLICATION_CREDENTIALS to look for the JSON key file generated in step 1.

Since the docker daemon is controlled by systemd on our Ubuntu installations we were able to configure the authentication environment variable as described here: in the section [Service] of the file /lib/systemd/system/docker.service we added the line


To bring this change into effect it is required to run the following commands:

sudo systemctl daemon-reload
sudo systemctl restart docker

Now we are able to run docker containers and redirect their logs to Google Cloud by using the command line arguments like:

docker run -d --log-driver=gcplogs \
--log-opt gcp-project=google-cloud-project hello-world

We can find the logo out put in the Google Cloud Logging section as if the were generated by a GCE VM Instance:

3. Make gcplogs the default

We wanted to use gcplogs as the default log driver for all the docker containers running on our servers. This can be done by adapting the file /etc/docker/daemon.json:

"log-driver": "gcplogs",
 "log-opts": {   
    "gcp-meta-name": "servername",
    "gcp-project": "google-cloud-project"  

This way we do not need to add log-driver and log-opt arguments when running our docker containers.


Having all the log output piped into Google Cloud Logging allowed us to set up metrics very easily (for example number of HTTP requests to certain services) and display them in Google Cloud Stackdriver Monitoring.

Since all our team members already have Google Accounts it was also very easy to give them access (role Logs Reader) to the logs generated by our various applications, so they can look into them on their own, which frees up resource on the operations team.

The Mac Mini is 1,000 Days old now

Last Wednesday we discussed in our team that we would need another Mac Mini for hosting a zoom room and another Jenkins build node for our iOS projects.

When I looked at the MacRumors Buyer’s Guide it showed that the Mac Mini was not updated for exactly 1000 days – what a coincidence ;)

But it is really sad that there has been no update for the Mac Mini in such a long time. Though Apple recently told the press “The Mac Mini remains a product in our lineup” they are not really supporting that statement by actions.

I would gladly buy a new Mac Mini with up to date hardware but the currently available configurations are not worth their money.

Looking at the state of the Mac Mini and their latest statements made me think: what if Apple takes the modularity of the new Mac Pro so far, that it could combine the Mac Mini and the Mac Pro into one product? A desktop Mac without a display than can be configured from 1.000 EUR to 10.000 EUR ? That would sound pretty intriguing and a lot like the famous xMac that the community wished for a long time.

If there is no update to the Mac Mini later this year, I would be sad, but it could be another hint that this is their plan.

Apple AirPods – love and limitations

When Apple announced that the AirPods will be available by the end of 2016 I had already decided to get them. I was using the EarPods, that came with my iPhones, nearly every day for years, so I knew the AirPods would fit me.

Since I got my iPhone 7 in October I had to carry two EarPods with me – one with the Lightning connector and one with the old 3,5 mm audio connector – the AirPods would be able to connect with all my devices: MacBook, iPhone, iPad and Apple Watch.

When the AirPods finally became available on the 13th of December I got lucky and was able to hit the small window of time, before the were out of stock. So I got mine on the 21st of December – my personal Christmas present ?

Now, after 3 months of using them I finally got time to write this post about my experiences with the AirPods. As usually there are good and bad things to say, first the good things:

I really ❤️ my AirPods! Some say it was the best Apple product of 2016 – I would agree to that though I really like the iPhone 7 a lot too. The AirPods somehow changed when and how I listen to podcasts and music – I do it more than before I had them. For example now I am often still listening while brushing by teeth before going to bed, I never did that with EarPods because the cable was restraining me.

A lot has been written about the hardware quality of the AirPods and their case, it is in typical Apple fashion a piece of perfect industrial design and manufacturing. You want to pop the case open and close it again and again just to hear that satisfying click sound.

The pairing process also could not be easier and works as expected with the touch of one button. The AirPods show up on all the devices connected to you iCloud account and switching between them works great – no fiddling with the bluetooth settings.

However there are two things that diminish my excitement about the AirPods a little bit:

I was expecting to connect them to my MacBook and my iPhone at the same time, so that when I am listening to music on my MacBook while working and the phone rings, I could just pause the music and take the call via the AirPods. As I found out on the first day, the AirPods can only be connected to one device at a time and for switching from the MacBook to the iPhone, I had to manually switch to them via the control center on the iPhone.

The second “problem” I have with my AirPods is that the sound quality sometime gets terrible. It took me some time to find out what causes this but I found the reason for it, just no solution until now. It only occurs when their microphone is activated and the AirPods are connected to my MacBook.

Here is an example of the audio quality when recorded via the AirPods connected to my iPhone:

And here is the recording done via the AirPods connected to my MacBook:

The same happens for the quality of the played music every time the microphone of the AirPods is activated by the MacBook – for example when doing a Slack voice call, a Skype call or even when activating Siri on mac OS.

The reason is that mac OS switches into a completely different Bluetooth protocol called SCO. When listening to music the AAC codec is used. You can see that when Alt-clicking on the Bluetooth menu bar item:

Maybe this is something that could be changed in the future by a software/firmware update. There are many forum post about it, I will keep  an eye on it.

Oh, and no, they do not fall out of your ear – you can headbang and jump, you won’t get them out.

10 Jahre iPhone

Kann mich noch sehr gut an meinen Blogpost vor 10 Jahren zur iPhone Präsentation erinnern – als eingefleischter BlackBerry Fan 😂

Mein Studienkollege Sebastian Schretter hat mich angerufen und wir haben darüber diskutiert – er war sofort überzeugt davon.

Dass sich das iPhone auf die Arbeit in meiner, damals noch nicht gegründete, Firma troii Software GmbH so massiv auswirken würde und die ganze Branche so verändert, hätte ich mir am Tag der Präsentation nicht gedacht.

Olympia im Netz

Nachdem ich während der ersten Woche der olympischen Spiele auf Urlaub in Kroatien war, ist mir wieder aufgefallen, wie schlecht sportliche Großereignisse ohne Fernseher verfolgt werden können.

Die Rechte sind alle an TV Sender verkauft. Wenn man dann ständig irgendwelche Headlines liest und sich das eine oder andere Highlight ansehen will, findet man nichts. Schnipsel die auf YouTube landen, verschwinden nach ein paar Stunden wieder. Die sehr kurzen Ausschnitte, die zB der ORF auf seiner Webseite hat, können wegen geoblocking nicht abgespielt werden ?

Das Tüpfelchen auf dem i sind dann noch die diversen Verbote von animated GIFs oder Hashtags ?

Da sind wieder ein paar Dinosaurier am Werk die hoffentlich bald aussterben, zeitgemäß ist das alles nicht!

Erstes Payment mit Apple Pay in Österreich durchgeführt

Nachdem ich in den letzten Tagen schon öfter von dem “Trick” gehört habe, mit dem man Apple Pay auch in Österreich nutzen kann, habe ich gestern selbst mal den Versuch gestartet.

Wie man hier bei einfach nachlesen kann, läuft das über eine virtuelle Prepaid Paid Karte, die man über eine App aus UK anlegt. Der Grund wieso ich zuerst gezögert habe war, dass man die Regions-Einstellungen am iPhone (und der Apple Watch) auf UK stellen muss um das ganze zum Laufen zu bringen. Als ich aber gehört habe, dass man die Einstellung nach dem anlegen der Karte im Wallet wieder zurückstellen kann, hab ich mir gedacht “I will give it try!”.

Nachdem ich die Karte bei boon angelegt habe, und 30 Pfund via meiner VISA Karte aufgeladen habe, habe ich die ersten Tests gemacht. Zuerst habe ich beim DM ein paar Kleinigkeiten um 6 EUR für die Kids besorgt und wollte mit der Apple Watch zahlen.IMG_3126

Das funktionierte leider nicht – Karte abgelehnt. Warum genau konnte ich nicht feststellen, also hab ich wieder mit der Bankomatkarte via NFC gezahlt.

Den nächsten Versuch hab ich dann bei der Kasse vom Bad gemacht – 7,70 EUR mit der Apple Watch – wieder Karte abgelehnt, wieder mit Bankomatkarte via NFC gezahlt.

Erst am Abend beim Heimfahren, als wir uns noch was zum Mitnehmen beim Chinesen geholt haben, hat es dann funktioniert. Allerdings habe ich da das iPhone verwendet. Jetzt weiß ich also noch nicht, ob es einfach mit der Watch noch nicht funktioniert hat, oder ob die Karte einfach bei den Kassen nicht angenommen wird – obwohl es eigentlich wie eine Mastercard funktionieren sollte.

Fazit: da werde ich noch etwas aufladen und nächste Woche ein paar weitere Tests durchführen müssen ;-)

UPDATE 18.7.2016: Heute Mittag bei Burgerista auch mit der Apple Watch erfolgreich eine Zahlung durchgeführt.

Why Slack is not your usual messenger

Ich habe heute wieder mal die Gelegenheit wahrgenommen und einen Talk am Technologieplauscherl gehalten, Titel: “Why Slack is not your usual messenger”.


Wie üblich war das Treffen auch heute wieder gut besucht und es hat richtig Spaß gemacht, den Vortrag vor so einer großen Menge zu halten.


Hier die Folien zu meinem Talk:

Mein kleines “beerbot” Beispiel kann man auf finden.

Aus den Gesprächen in den Pausen über node, docker und TypeScript konnte ich auch wieder sehr viel mitnehmen. Generell war es wieder ein super Abend der motiviert hat – echt genial was in der Linzer Community da abgeht!

MySQL alter table Geschwindigkeit

Angeregt durch die Diskussion mit Andre in unserer letzten Podcast Episode “Episode 78 – PROD Deployment” habe ich mir ein Testsetup erstellt, um zu prüfen, ob das Hinzufügen von Spalten zu Tabellen mit viel Inhalt in neueren MySQL Versionen wirklich schneller geworden ist. Das Ergebnis ist ziemlich eindeutig JA:


Es sieht also so aus als ob ein Update hier wirklich die erhofften Verbesserung bringen wird. Den Test mit dem pt-online-schema-change habe ich noch nicht durchgeführt, davon erwarte ich mir auch noch Einiges.