All Projects → websu-io → Websu

websu-io / Websu

Licence: apache-2.0
Website Speed and Performance Optimization and monitoring

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Websu

ember-appmetrics
Ember library used to measure various metrics in your Ember app with ultra simple APIs.
Stars: ✭ 16 (-56.76%)
Mutual labels:  performance-analysis, performance-monitoring
aws-python-utilities
Python utilities for AWS related tasks.
Stars: ✭ 34 (-8.11%)
Mutual labels:  performance-analysis, performance-monitoring
playwright-lighthouse
🎭: Playwright Lighthouse Audit
Stars: ✭ 120 (+224.32%)
Mutual labels:  performance-monitoring, lighthouse
Caliper
Caliper is an instrumentation and performance profiling library
Stars: ✭ 162 (+337.84%)
Mutual labels:  performance-monitoring, performance-analysis
Frontendwingman
Frontend Wingman, Learn frontend faster!
Stars: ✭ 315 (+751.35%)
Mutual labels:  performance-monitoring, performance-analysis
Myperf4j
High performance Java APM. Powered by ASM. Try it. Test it. If you feel its better, use it.
Stars: ✭ 2,281 (+6064.86%)
Mutual labels:  performance-monitoring, performance-analysis
PerfAvore
Rule based performance analysis and monitoring tool for dotnet written in F#.
Stars: ✭ 12 (-67.57%)
Mutual labels:  performance-analysis, performance-monitoring
Mthawkeye
Profiling / Debugging assist tools for iOS. (Memory Leak, OOM, ANR, Hard Stalling, Network, OpenGL, Time Profile ...)
Stars: ✭ 1,119 (+2924.32%)
Mutual labels:  performance-monitoring, performance-analysis
docker-google-lighthouse-puppeteer
Google Lighthouse + Puppeteer / Docker Image
Stars: ✭ 29 (-21.62%)
Mutual labels:  performance-analysis, lighthouse
compile-time-perf
Measures high-level timing and memory usage metrics during compilation
Stars: ✭ 64 (+72.97%)
Mutual labels:  performance-analysis, performance-monitoring
Nemetric
前端性能指标的监控,采集以及上报。用于测量第一个dom生成的时间(FP/FCP/LCP)、用户最早可操作时间(fid|tti)和组件的生命周期性能,,网络状况以及资源大小等等。向监控后台报告实际用户测量值。
Stars: ✭ 145 (+291.89%)
Mutual labels:  performance-monitoring, performance-analysis
Apm Agent Dotnet
Elastic APM .NET Agent
Stars: ✭ 418 (+1029.73%)
Mutual labels:  performance-monitoring, performance-analysis
Apm Agent Php
Elastic APM PHP Agent
Stars: ✭ 129 (+248.65%)
Mutual labels:  performance-monitoring, performance-analysis
Droidtelescope
DroidTelescope(DT),Android端App性能监控框架
Stars: ✭ 231 (+524.32%)
Mutual labels:  performance-monitoring, performance-analysis
Pcm
Processor Counter Monitor
Stars: ✭ 1,240 (+3251.35%)
Mutual labels:  performance-monitoring, performance-analysis
lighthouse-chromium-alpine-docker
Run Google's Lighthouse headless in the background
Stars: ✭ 16 (-56.76%)
Mutual labels:  performance-analysis, lighthouse
Lighthouse Monitor
Investigate performance over your whole company with lighthouse
Stars: ✭ 136 (+267.57%)
Mutual labels:  lighthouse, performance-analysis
Nodereactionagent
NodeReactionAgent is an Node.js asynchronous performance monitoring tool to be in conjunction with Nodereaction.com or nodereactionclient
Stars: ✭ 49 (+32.43%)
Mutual labels:  performance-monitoring, performance-analysis
performance-budget-plugin
Perfromance budget plugin for Webpack (https://webpack.js.org/)
Stars: ✭ 65 (+75.68%)
Mutual labels:  performance-analysis, performance-monitoring
Exthouse
Analyze the impact of a browser extension on web performance.
Stars: ✭ 377 (+918.92%)
Mutual labels:  lighthouse, performance-analysis

websu.io - Web speed optimization and monitoring

Websu.io helps you optimize your web applications for speed by generating detailed speed reports. The speed reports are run using Chrome and show you how you can optimize your web application to improve the performance. Speed is important for websites to reduce the bounce rate of visitors. Most people aren't patient enough for your page to load. So you better optimize. You can try it out right now at https://websu.io.

Lighthouse is the open source project used to generate the performance reports. So Websu is basically providing Lighthouse-as-a-Service through a simple HTTP REST API to run Lighthouse. The react based frontend Websu UI consumes the Websu HTTP API.

Features

  • Run performance reports through a simple HTTP REST API and receive lighthouse json results
  • Run Lighthouse from multiple locations around the globe
  • Run scheduled reports hourly, daily, weekly or monthly to continiously monitor the performance of your websites
  • Retrieve a list of previous results
  • Web UI to host your own internal Lighthouse service
  • Ability to compare results (TODO)

Trying it out

You have 2 options:

  1. Use the public demo instance available here: https://websu.io
  2. Deploy Websu in your own environment. See for example Deployment using Docker below.

Deployment using Docker (easiest)

Deploy the docker image in your environment by running the following:

git clone https://github.com/websu-io/websu
cd websu
docker-compose up -d

The docker-compose will bring up the Websu-api container, lighthouse-server and a mongoDB container. The Websu containers runs the websu API and the static frontend web UI with it. After deployment you can access Websu UI by visiting http://localhost:8000

You can test the API by running the following:

curl -d '{"url": "https://www.google.com"}' localhost:8000/reports

Deployment using Google Cloud Run managed (harder, better, faster)

Cloud Run is a great cost efficient option to deploy a production ready instance of Websu. Cloud Run takes care of automatically scaling and launching Lighthouse jobs. In addition the free limits of Cloud Run managed are very generous. The public https://websu.io instance is running on Cloud Run. Run the steps below to deploy to Cloud Run.

Push the images to Google Cloud Artifact Registry:

export PROJECT_ID=$(gcloud config get-value project)
gcloud artifacts repositories create websu --repository-format=docker \
  --location=us-central1 --description="Websu Docker repository"
gcloud auth configure-docker us-central1-docker.pkg.dev
docker pull samos123/lighthouse-server:latest
docker tag samos123/lighthouse-server:latest us-central1-docker.pkg.dev/$PROJECT_ID/websu/lighthouse-server:latest
docker push us-central1-docker.pkg.dev/$PROJECT_ID/websu/lighthouse-server:latest
docker pull samos123/websu-api:latest
docker tag samos123/websu-api:latest us-central1-docker.pkg.dev/$PROJECT_ID/websu/websu-api:latest
docker push us-central1-docker.pkg.dev/$PROJECT_ID/websu/websu-api:latest

Deploy lighthouse-server on Cloud Run:

gcloud run deploy lighthouse-server \
  --image us-central1-docker.pkg.dev/$PROJECT_ID/websu/lighthouse-server:latest \
  --memory 1024Mi --platform managed --port 50051 --timeout 60s --concurrency 1 \
  --region us-central1 --set-env-vars="USE_DOCKER=false" --allow-unauthenticated

Deploy websu-api on Cloud Run:

ENDPOINT=$(\
  gcloud run services list \
  --project=${PROJECT_ID} \
  --region=us-central1 \
  --platform=managed \
  --format="value(status.address.url)" \
  --filter="metadata.name=lighthouse-server")
ENDPOINT=${ENDPOINT#https://}:443

gcloud run deploy websu-api \
  --image us-central1-docker.pkg.dev/$PROJECT_ID/websu/websu-api:latest \
  --platform managed --port 8000 --timeout 60s --region us-central1 \
  --set-env-vars="MONGO_URI=mongodb://ip-of-your-mongo-db-instance,LIGHTHOUSE_SERVER=$ENDPOINT,LIGHTHOUSE_SERVER_SECURE=true" \
  --allow-unauthenticated

FAQ

  • Why not just use Lighthouse directly?
    • Lighthouse provides a CLI and an extension that can be installed in Chrome. Lighthouse doesn't provide an HTTP API or a Web UI. Websu makes it easier to consume Lighthouse for both standard users and web developers with an HTTP API and a Web UI. It also allows you to store the results of runs so you can compare and view them at a later time.

Developer instructions

Regenerate gRPC golang client and server code

cd pkg/lighthouse
protoc --go_out=. --go_opt=paths=source_relative \
  --go-grpc_out=. --go-grpc_opt=paths=source_relative \
  lighthouse.proto
cd -

Generate updated API documentation:

swag init -g cmd/websu-api/main.go

License

License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].