Cloud-oriented Life

Cloud Native Technology Improves Lives

col-nightscount-docker

Nightscout (also known as “CGM in the Cloud”) is an open-source cloud application used by people with diabetes and parents of kids with diabetes to visualize, store and share the data from their Continuous Glucose Monitoring sensors in real-time. Once setup, Nightscout acts as a central repository of blood glucose and insulin dosing/treatment data for a single person, allowing you to view the CGM graph and treatment data anywhere using just a web browser connected to the internet.

Read more »

Webhooks

Rocket.Chat keep the workflow going by centralizing all your tools and touchpoints in one platform. Made for teamcollaboration, DevOps and customer engagement.

Rocket.Chat supports WebHooks to integrate tools and services you like into the platform. WebHooks are simple event-notifications via HTTP POST. This way any application implementing a WebHook is able to POST a message to a Rocket.Chat instance and much more.

Read more »

Sentry

Sentry is a service that helps you monitor and fix crashes in realtime. The server is in Python, but it contains a full API for sending events from any language, in any application.

This article is about how to use Helm to install Sentry 9.x on Kubernetes (K8S).

Read more »

PostHog

PostHog provides open-source product analytics, built for developers. Automate the collection of every event on your website or app, with no need to send data to 3rd parties. With just 1 click you can deploy on your own infrastructure, having full API/SQL access to the underlying data.

This article is about how to use Helm to install PostHog on Kubernetes (K8S).

Read more »

elastic-apm

elastic-apm gem is the official Elastic APM agent for Ruby and Ruby on Rails.

The APM Server receives data from APM agents and transforms them into Elasticsearch documents. It does this by exposing an HTTP server endpoint to which agents stream the APM data they collect. After the APM Server has validated and processed events from the APM agents, the server transforms the data into Elasticsearch documents and stores them in corresponding Elasticsearch indices.

The APM Server works in conjunction with APM agents, Elasticsearch, and Kibana. Please view the APM Overview for details on how these components work together.

Prerequisites

Make sure Elastic APM Server Application Performance Monitoring (APM) with Elasticsearch | Elastic - https://www.elastic.co/apm is running before you start implementing the APM agents.

Installation

You can install it as a gem:

1
$ gem install elastic-apm

or add it into a Gemfile (Bundler):

1
2
3
4
5
6
7
# Gemfile

# Getting started with Rails | APM Ruby Agent Reference [3.x] | Elastic
# https://www.elastic.co/guide/en/apm/agent/ruby/current/getting-started-rails.html
# elastic/apm-agent-ruby: Elastic APM agent for Ruby
# https://github.com/elastic/apm-agent-ruby
gem 'elastic-apm'

Then, run bundle install.

1
$ bundle install

Config

1
2
3
4
5
6
7
8
9
10
11
12
13
# config/elastic_apm.yml:

enabled: true # false

# Set service name - allowed characters: a-z, A-Z, 0-9, -, _ and space
# Defaults to the name of your Rails app
service_name: 'col-rails-elastic-apm-example'

# Use if APM Server requires a token
# secret_token: <%= ENV['VERY_SECRET_TOKEN'] %>

# Set custom APM Server URL (default: http://localhost:8200)
server_url: 'http://localhost:8200'

See the documentation Configuration | APM Ruby Agent Reference [3.x] | Elastic - https://www.elastic.co/guide/en/apm/agent/ruby/current/configuration.html for configuration options and advanced usage.

Run

APM is automatically started when your app boots. Configure the agent, by creating the config file config/elastic_apm.yml.

Then, you can visit your Elastic Kibana Web UI to see Transactions, Errors and Metrics.

References

[1] Configuration | APM Ruby Agent Reference [3.x] | Elastic - https://www.elastic.co/guide/en/apm/agent/ruby/current/configuration.html

[2] elastic/apm-agent-ruby: Elastic APM agent for Ruby - https://github.com/elastic/apm-agent-ruby

[3] Application Performance Monitoring (APM) with Elasticsearch | Elastic - https://www.elastic.co/apm

Ruby 3 and Rails 6.1

Ruby 3, whose goal is performance, concurrency, and Typing. Especially about performance, Matz stated “Ruby3 will be 3 times faster than Ruby2” a.k.a. Ruby 3x3.

Rails 6.1 has been released and wow does it have a lot of great stuff! It have implemented improvements to multiple databases, adding support for destroying associations in jobs instead of in-memory, turning errors into objects, and so much more.

Read more »

#before? and #after?

Date, DateTime, Time and ActiveSupport::TimeWithZone objects using before? and after? in Rails 6.

before? and after? are aliases to < (less than) and > (greater than) methods respectively.

Read more »

ActiveRecord::Store

ActiveRecord::Store gives you a thin wrapper around serialize for the purpose of storing hashes in a single column. It’s like a simple key/value store baked into your record when you don’t care about being able to query that store outside the context of a single record.

Read more »

At the end of May 2020, the Raspberry Pi Foundation announced Raspberry Pi OS, the new official operating system for the mini-computer that is replacing Raspbian.

The good news is that Raspberry Pi OS does support Docker and Docker Compose, in both the 32-bit and 64-bit variants! Read below on how to install it as well as Docker Compose.

Read more »
0%