- Connect to eventstore using consul for discovery
- Do you want to use Consul-template or a consul client for this? CT is going to be easier for AtomicPuppy, I think.
- Read an event with atomicpuppy and log it
- Suggest starting with the heartbeat message that we already use for ERP and Availability.
- Restart the app on SIGHUP
- Set up proper json logging using the msg_id and msg_type fields
- Metric: Eventstore response code
- Metric: Eventstore latency
- These two may not be possible without changing AtomicPuppy, in which case we should probably not put them in scope.
- Metric: Event processing time
I hereby claim:
- I am bobthemighty on github.
- I am pathogenix (https://keybase.io/pathogenix) on keybase.
- I have a public key ASCMDRUTDeWMXR5rO3tRehTbTMjSs00XaWOhIFjSxp8WBQo
To claim this, I am signing this object:
Although the pace of change at Made has slowed over the last 12 months, we are still testing new techniques and re-examining best practices. It's useful to periodically reflect on what good practice looks like and make sure we're spreading that knowledge to our dev teams. This is a quick guide to what the Ops team need from developers in 2018. If your systems don't comply with these guidelines, you should chat to a friendly ops person so we can help you prioritise and fix issues.
Ops can't operate your system if they don't know how to work it. Every system should have an operators.md
file in the root of the github repository that describes:
- What the system does.
- What the business impact of an outage is.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Station, bill } from "../lib"; | |
describe("A single journey in zone A", () => { | |
const taps: Array<Station> = [Station.Asterisk, Station.Aldgate]; | |
it("should charge £2.50 for the journey", () => { | |
const [charge] = bill(taps); | |
expect(charge.amount).toEqual(250); | |
}); | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
resource "aws_cloudwatch_log_group" "debug" { | |
name = "API-Gateway-Execution-Logs_${aws_api_gateway_rest_api.stats.id}/${var.stage_name}" | |
retention_in_days = 1 | |
} | |
resource "aws_iam_role" "apig_cw" { | |
name = "stats-apig-cloudwatch-logger" | |
assume_role_policy = <<-EOF | |
{ | |
"Version": "2012-10-17", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def sip(stream): | |
""" | |
NAYA will handle our json just fine so long as it starts with an | |
open bracket, so it thinks it has a list. | |
""" | |
def f(): | |
# Yield a dummy `[` | |
yield TOKEN_TYPE.OPERATOR, "[" | |
# Followed by the rest of the tokens in the stream | |
for t in tokenize(stream): |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[GLOBAL] | |
pants_version = "2.15.0" | |
backend_packages = [ | |
"pants.backend.python" | |
] | |
[source] | |
root_patterns = ["/"] | |
[python] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Security] | |
EAP-Method=PEAP | |
EAP-Identity=anonymous | |
EAP-PEAP-Phase2-Method=MSCHAPV2 | |
EAP-PEAP-Phase2-Identity=USERNAME_GOES_HERE | |
EAP-PEAP-Phase2-Password=PASSWORD_GOES_HERE |
OlderNewer