This is a short introduction post about Gilliam, a platform for micro services architecture systems.
Gilliam draws a lot of inspiration from Heroku. The idea is that Gilliam should be to your service ecosystem what Heroku is to your web apps.
/* | |
File Setup.jsx v3 | |
Copyright (C) 2017, 2018 Johan Rydberg. All Rights Reserved. | |
A Photoshop Script to automate the file setup described in | |
"Commercial Retouching Workflow with Sef McCullough" from RGG EDU. | |
It expects you to have paths set up for your parts. If one of the paths is | |
called "SILO" then that will be used as group mask for all other masks. |
[[(1397612319, 21), (1397621859, 23), (1397658009, 25), (1397659201, 27), (1397661879, 68), (1397665377, 70), (1397668892, 74), (1397688176, 81), (1397702320, 88), (1397772427, 95), (1397774079, 102), (1397769414, 143), (1397839220, 151), (1397855248, 177), (1397856181, 180), (1397864504, 182), (1397877663, 223), (1397946910, 225), (1397947620, 228), (1397958176, 230), (1397959410, 235), (1398018506, 237), (1398073253, 240), (1398085809, 242), (1398086110, 244), (1398090918, 246), (1398092760, 248), (1398094918, 250), (1398095011, 253), (1398095602, 258), (1398095635, 260), (1398097942, 266), (1398098907, 268), (1398098944, 270), (1398098966, 272), (1398100299, 275), (1398102287, 279), (1398102521, 283), (1398128458, 292), (1398133646, 301), (1398145646, 304), (1397926906, 306), (1398174254, 308), (1398194460, 330), (1398189786, 331), (1398251626, 333), (1398259979, 335), (1398263918, 344), (1398605864, 360), (1399434187, 362), (1400093588, 0)], [(1398887197, 1), (1398890026, 113), (1398890893, 114), (1398958 |
This is a short introduction post about Gilliam, a platform for micro services architecture systems.
Gilliam draws a lot of inspiration from Heroku. The idea is that Gilliam should be to your service ecosystem what Heroku is to your web apps.
Riemann is a quite simple but powerful monitoring system. In its core it is an event processing framework allowing a user to handle an incoming event stream. Events are small objects that originate from a host, that has a service and metric value associated with it. Events may also have tags and a free text description. This simple data structure enables an application transmit both exception tracebacks and application metric data using the same mechanism.
Riemann has a few problems though. First, it is a single-machine application, only allowing vertical scaling. Secondly, there's no redundancy or availability solution. In this post we'll try to address the first issue.
class UnhandledExceptionError(Exception): | |
"""The exception could not be handled by the supervisor.""" | |
class SupervisorKilledError(Exception): | |
"""The supervisor was killed.""" | |
class SupervisorAbortedError(Exception): | |
"""The supervisor gave up after maximum number of failures.""" |
"""Functional-programming style sequences.""" | |
import itertools | |
import functools | |
import operator as op | |
class Blank(object): | |
def __init__(self, pos=None): | |
self.pos = pos |
# Copyright 2012 Johan Rydberg. | |
# Copyright 2001-2008 Twisted Matrix Laboratories. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software |
# Small snippet that shows how to put a watchdog around a greenlet. | |
# When the watchdog is triggered, a stacktrace of the greenlet is | |
# printed. | |
import gevent | |
import traceback | |
import sys | |
def a(a=10): |
%define _noarch_libdir /usr/lib | |
%define rel_ver 0.7.0 | |
Summary: A high-throughput distributed messaging system. | |
Name: kafka | |
Version: %{rel_ver} | |
Release: 1 | |
License: Apache License v2.0 | |
Group: Applications/Databases |
exports.AlreadyCalledError = class AlreadyCalledError | |
exports.Failure = class Failure | |
constructor: (@error) -> | |
check: (errorType) -> | |
if @error instanceof errorType | |
@error | |
else | |
null |