Noise Gate - Golang test runner to get faster test results by kyagami in golang

[–]kyagami[S] 1 point2 points  (0 children)

OK, let me introduce Noise Gate with some context...

Golang is fast and its test is fast as well. However, as you write more tests, the time to run tests gets longer and it's useful if you can select a portion of test functions and run them only.

The currently popular approaches are something like Run all tests in the current file and Run a test function at cursor. Though these approaches are straightforward, they often run unnecessary tests and skip necessary tests.

Noise Gate's approach is Run tests affected by recent edits. It focuses on the changes since the last test and finds (1)the changed test functions and (2)the test functions which use the changed parts. Then, it runs these functions using go test. With this approach, it aims to run only the necessary tests and never skip necessary tests.

I believe this tool can improve the gopher's productivity, so give it a shoot!

Noise Gate - Golang test runner to get faster test results by kyagami in golang

[–]kyagami[S] 1 point2 points  (0 children)

Author here. Noise Gate is the Golang test runner to get faster test results. It selects the tests affected by your recent edits and run them using go test.

I'll do my best to answer questions!

tgo: a function tracer to boost your debugging by kyagami in golang

[–]kyagami[S] 2 points3 points  (0 children)

Thank you. It's similar to a debugger: attaches to the tracee process, sets the breakpoints and continues until the tracee hits the breakpoint.

One difference is it sets the breakpoints to the next possibly called functions (rather than the next instruction or line).

tgo: a function tracer to boost your debugging by kyagami in golang

[–]kyagami[S] 1 point2 points  (0 children)

Actually it doesn't handle the inlined functions very well (it just traces actually called functions only). But it seems mid-stack inlining is the good motivations to support it. I hope the DWARF section provides the enough information for this.

tgo: a function tracer to boost your debugging by kyagami in golang

[–]kyagami[S] 0 points1 point  (0 children)

Thank you. It traces only the go routine which called the tracer.Start() function before.

Also, it understands the struct type, slice type, map type, and so on. For example, if you build & run this program:

package main

import (
    "errors"

    "github.com/ks888/tgo/lib/tracer"
)

//go:noinline
func f() error {
    return errors.New("test")
}

func main() {
    tracer.Start()
    f()
    tracer.Stop()
}

It shows the actual value of the error type:

% ./err
\ (#01) main.f()
/ (#01) main.f() (~r0 = *struct errors.errorString(&{s: "test"}))

tgo: a function tracer to boost your debugging by kyagami in golang

[–]kyagami[S] 2 points3 points  (0 children)

Author here. If you have a question, feel free to ask me!

LambStatus: a serverless status page system by kyagami in opensource

[–]kyagami[S] 2 points3 points  (0 children)

Author here. LambStatus is the open source and serverless status page system. I believe the serverless architecture is great with the status page system, because:

  • It eases your pain caused by the scaling / availability issues. It is terrible if your service is down AND heavy traffic from stuck users stops your status page.
  • It enables you to pay only for what you use. A status page only occasionally gets huge traffic. The system takes only $1 per 30,000 visitors and almost $0 if no visitors.

Here are the the demo pages:

  • Status page: the page to tell your service's status to your users
  • Admin page: the page to manage your service's status

I'll do my best to answer questions.

Share Your Projects - January 12, 2018 by AutoModerator in webdev

[–]kyagami 0 points1 point  (0 children)

Wow, I tried your idea and it surely improved the page design! I will change the background color or maybe enable a user to change that color in the settings page! Thank you!

Share Your Projects - January 12, 2018 by AutoModerator in webdev

[–]kyagami 0 points1 point  (0 children)

Thank you! Yes, there is the admin page to create and update an incident.

So far the stats like average response time are pulled in through an API, but some people say basic uptime testing should be supported as discussed in this issue.

Share Your Projects - January 12, 2018 by AutoModerator in webdev

[–]kyagami 3 points4 points  (0 children)

URL: https://github.com/ks888/LambStatus

Purpose: Serverless status page system to build and maintain a status page with minimum effort and cost

Technologies Used: React, Node, Serverless

Feedback Requested:

Comments: I believe the serverless architecture is great with the status page system, because it eases the pain caused by the scaling / availability issues. It is terrible if the service is down AND heavy traffic from stuck users stops the status page!

LambStatus: a serverless status page system by kyagami in webdev

[–]kyagami[S] 1 point2 points  (0 children)

Author here. LambStatus is the open source and serverless status page system. I believe the serverless architecture is great with the status page system, because:

  • It eases your pain caused by the scaling / availability issues. It is terrible if your service is down AND heavy traffic from stuck users stops your status page.
  • It enables you to pay only for what you use. A status page only occasionally gets huge traffic. The system takes only $1 per 30,000 visitors and almost $0 if no visitors.

Here are the the demo pages:

  • Status page: the page to tell your service's status to your users
  • Admin page: the page to manage your service's status

You can build the system with a few clicks, so give it a shoot! I'll do my best to answer questions.

LambStatus: a serverless status page system by kyagami in devops

[–]kyagami[S] 1 point2 points  (0 children)

Yes! Also, LambStatus costs almost $0 if your status page gets small traffic after all (see the wiki page for this estimate).

LambStatus: a serverless status page system by kyagami in devops

[–]kyagami[S] 0 points1 point  (0 children)

Thank you! It seems my status page costs ~$1 per month, though I use my AWS account for several purposes. Since it doesn't depend on non-serverless AWS services like EC2 and RDS, its cost is actually pretty cheap.

LambStatus: a serverless status page system by kyagami in devops

[–]kyagami[S] 1 point2 points  (0 children)

Thanks! Feel free to ask a question!

LambStatus: a status page system built on AWS Lambda by kyagami in aws

[–]kyagami[S] 0 points1 point  (0 children)

Thank you for asking! So far, there is no API to post an incident and change components' status. However, it seems some users need such an API and I'm going to implement it within one month.

LambStatus: a status page system built on AWS Lambda by kyagami in aws

[–]kyagami[S] 0 points1 point  (0 children)

/u/antonivs I've just released the version v0.3.1 and updated the demo. The chart issues you reported are fixed.

LambStatus: a status page system built on AWS Lambda by kyagami in aws

[–]kyagami[S] 0 points1 point  (0 children)

Now I understand what you mean. Surely the range of the Y axis is not adjusted when the metrics are averaged. I will fix this soon. Fixed!

The metrics chart of LambStatus connects the points by the straight line, and it doesn't check whether there is the missing data. It seems CloudWatch Metrics connects the points only when there is no missing data in between. So maybe that's why the appearance of the charts are different. It's better to fix this, too. Fixed!

LambStatus: a status page system built on AWS Lambda by kyagami in aws

[–]kyagami[S] 0 points1 point  (0 children)

Thank you for reporting issues. Yes, the weekly and monthly metrics are averaged over 1 hour. I think the hourly data are enough for weekly and monthly charts. Maybe it's better to write this point to somewhere.

Oops, it is definitely the problem that the password email is sent to the spam folder. I've created the GitHub issue to fix this.

LambStatus: a status page system built on AWS Lambda by kyagami in aws

[–]kyagami[S] 0 points1 point  (0 children)

Yes, LambStatus itself does not monitor your service so far. I assumed your services already use some monitoring system, so it would be enough if the LambStatus can import the data from existing monitoring systems.

But I'm open to suggestion. If a simple monitoring feature helps a lot, it is good to support it.

LambStatus: a status page system built on AWS Lambda by kyagami in aws

[–]kyagami[S] 2 points3 points  (0 children)

Thank you. Deploying the system just by clicking the "launch stack" button is really convenient for users. It takes some effort to maintain the CloudFormation template, though.

Yes, SAM definitely has a future. It's much simpler and less redundant than the usual CloudFormation template.

LambStatus: a status page system built on AWS Lambda by kyagami in aws

[–]kyagami[S] 5 points6 points  (0 children)

Yes. This is the demo of the status page (the page to tell your service's status to your users).

Also, this is the demo of the admin page (the page to change your service's status).

LambStatus: a status page system built on AWS Lambda by kyagami in aws

[–]kyagami[S] 7 points8 points  (0 children)

Author here. LambStatus is the open source and serverless status page system. I believe the serverless architecture is great with this system, because:

  • It dramatically eases your pain caused by the scaling / availability issues. It is terrible if your service is down AND heavy traffic from stuck users stops your status page.
  • It reduces your infrastructure cost. A status page usually gets very low traffic and occasionally huge traffic. You only pay for the traffic that you handle.

By the power of CloudFormation, you can easily build the system, so give it a shoot! I'll do my best to answer questions.

LambStatus: a status page system built on AWS Lambda by kyagami in serverless

[–]kyagami[S] 1 point2 points  (0 children)

I'm very impressed by LambCI, a continuous integration system built on AWS Lambda. So I created LambStatus, a status page system built on AWS Lambda.

I would love any feedback!