Skip to content

Instantly share code, notes, and snippets.

{
"annotations": {
"list": []
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"hideControls": false,
"id": null,
"links": [],
@monkey-codes
monkey-codes / rxjs-pull-vs-push.js
Created November 22, 2016 00:24
rxjs - Example of Pull vs Push
//Traditional imperative pull based
window.setInterval(() => {
const tweets = getNewTweets();
for(let tweet of tweets){
if(!tweet.message.contains("Greetings!")) continue;
getUserAvatar(tweet.user)
.then(avatar => {
const $avatar = $(`<img />`);
$avatar.attr('src', avatar.url);
AWSEBCWLGreetingMeanMetricFilter :
Type : "AWS::Logs::MetricFilter"
Properties :
LogGroupName: { "Ref" : "AWSEBCloudWatchLogsAppLogGroup" }
FilterPattern : '{ $.perf4j_tag = "greeting.GET"}'
MetricTransformations :
- MetricValue : $.perf4j_mean
MetricNamespace: {"Fn::Join":["/", ["elastic-beanstalk", {"Ref":"AWSEBEnvironmentName"}]]}
MetricName : greeting-mean
{
"@timestamp":"2016-08-13T15:43:28.826+1000",
"@version":1,
"message":"greeting.GET=mean[0.25] stddev[1.0897247358851685] min[0] max[5] count[20]",
"logger_name":"org.perf4j.TimingLogger",
"thread_name":"perf4j-async-stats-appender-sink-perf-summary",
"level":"INFO",
"level_value":20000,
"perf4j_tag":"greeting.GET",
"perf4j_max":5,
appender('perf-summary', LogstashAsyncCoalescingStatisticsAppender) {
timeSlice = 30000
queueSize = 30000
createRollupStatistics = false
appender(LoggingEventAsyncDisruptorAppender) {
appender(ConsoleAppender) {
encoder(CloudwatchLogstashEncoder) {
customFields = loggingMarkers
shortenedLoggerNameLength = 36
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams",
Mappings:
CWLogs:
WebRequestLogGroup:
TimestampFormat: "%Y-%m-%dT%H:%M:%S.%f%z"
Outputs:
WebRequestCWLogGroup:
Description: "The name of the Cloudwatch Logs Log Group created for this environments web server access logs. You can specify this by setting the value for the environment variable: WebRequestCWLogGroup. Please note: if you update this value, then you will need to go and clear out the old cloudwatch logs group and delete it through Cloudwatch Logs."
Value: { "Ref" : "AWSEBCloudWatchLogsAppLogGroup"}
<configuration>
<define name="app_name" class="codes.monkey.logging.LoggingTagsPropertyDefiner">
<property>app.name</property>
</define>
<define name="app_version" class="codes.monkey.logging.LoggingTagsPropertyDefiner">
<property>app.version</property>
</define>
<define name="eb_hostname" class="codes.monkey.logging.BeanStalkPropertyDefiner">
<field>hostname</field>
</define>
@SpringBootApplication
class CloudwatchLoggingApplication {
@Bean
EmbeddedServletContainerFactory servletContainer(TomcatContextCustomizer customizer) {
def factory = new TomcatEmbeddedServletContainerFactory()
factory.setTomcatContextCustomizers([customizer])
factory
}
{
"@timestamp":"2016-07-27T10:15:02.606+1000",
"@version":1,
"@message":"0:0:0:0:0:0:0:1 - - [2016-07-27T10:15:02.606+10:00] \"GET /favicon.ico HTTP/1.1\" 200 946",
"fields_method":"GET",
"fields_protocol":"HTTP/1.1",
"fields_status_code":200,
"fields_requested_url":"GET /favicon.ico HTTP/1.1",
"fields_requested_uri":"/favicon.ico",
"fields_remote_host":"0:0:0:0:0:0:0:1",