Top Related Projects
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Architected for speed. Automated for easy. Monitoring and troubleshooting, transformed!
The Prometheus monitoring system and time series database.
Your window into the Elastic Stack
Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.
Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
Quick Overview
Weaveworks Scope is an open-source project visualization and monitoring tool for Docker and Kubernetes. It provides a real-time, interactive map of your containerized applications, allowing you to monitor, troubleshoot, and understand your microservices architecture.
Pros
- Provides a clear, visual representation of complex containerized environments
- Offers real-time monitoring and troubleshooting capabilities
- Integrates seamlessly with Docker and Kubernetes
- Supports both on-premises and cloud deployments
Cons
- Can be resource-intensive in large-scale environments
- Limited customization options for the user interface
- Requires additional setup for advanced features like alerting
- May have a learning curve for users new to container orchestration
Getting Started
To get started with Weaveworks Scope, follow these steps:
- Install Scope on your Kubernetes cluster:
kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')"
- Access the Scope UI:
kubectl port-forward -n weave "$(kubectl get -n weave pod --selector=weave-scope-component=app -o jsonpath='{.items..metadata.name}')" 4040
- Open a web browser and navigate to
http://localhost:4040
to view the Scope UI.
For more detailed instructions and advanced configurations, refer to the official documentation at https://www.weave.works/oss/scope/.
Competitor Comparisons
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Pros of Grafana
- More versatile and supports a wider range of data sources
- Highly customizable dashboards with extensive visualization options
- Larger community and ecosystem with numerous plugins and integrations
Cons of Grafana
- Steeper learning curve for complex configurations
- May require more resources for large-scale deployments
- Less focused on container and microservices monitoring
Code Comparison
Scope (Go):
func (n *Node) AddChild(child *Node) {
n.children = append(n.children, child)
child.parent = n
}
Grafana (TypeScript):
export function addPanel(dashboard: DashboardModel, panel: PanelModel): void {
panel.gridPos = getNextGridPos(dashboard);
dashboard.panels.push(panel);
}
Both projects use different languages and have distinct purposes. Scope focuses on container and microservices visualization, while Grafana is a more general-purpose monitoring and visualization platform. The code snippets demonstrate their different approaches: Scope deals with node relationships, while Grafana manages dashboard panels.
Scope provides real-time, interactive visualizations of containerized environments, making it easier to understand complex microservices architectures. Grafana, on the other hand, offers a broader range of visualization options and data source integrations, making it suitable for various monitoring and analytics use cases beyond just containerized environments.
Architected for speed. Automated for easy. Monitoring and troubleshooting, transformed!
Pros of Netdata
- More comprehensive system monitoring, covering a wider range of metrics
- Lower resource usage and better performance for continuous monitoring
- Extensive alerting capabilities and customizable dashboards
Cons of Netdata
- Less focus on container and microservices visualization
- May require more setup and configuration for complex environments
- Limited built-in service discovery compared to Scope
Code Comparison
Netdata configuration example:
[global]
update every = 1
memory mode = ram
history = 3600
Scope configuration example:
probe:
docker: true
kubernetes: true
processes: true
Both projects use YAML for configuration, but Netdata's configuration is more granular and focused on data collection intervals and storage, while Scope's configuration is centered around enabling specific probes for different environments.
Netdata offers more flexibility in terms of data retention and collection frequency, which can be crucial for long-term monitoring and analysis. Scope, on the other hand, provides a simpler configuration that's more tailored to container and microservices environments.
Overall, Netdata is better suited for comprehensive system monitoring with a focus on performance and resource efficiency, while Scope excels in providing real-time visualization and mapping of containerized applications and microservices.
The Prometheus monitoring system and time series database.
Pros of Prometheus
- More mature and widely adopted monitoring system with a larger ecosystem
- Powerful query language (PromQL) for flexible data analysis
- Better suited for long-term metrics storage and historical data analysis
Cons of Prometheus
- Primarily focused on metrics collection, lacking the network topology visualization of Scope
- Steeper learning curve, especially for PromQL and advanced configurations
- Less emphasis on real-time container and microservices monitoring
Code Comparison
Prometheus configuration (prometheus.yml):
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'example'
static_configs:
- targets: ['localhost:8080']
Scope configuration (scope.yml):
probe:
docker: true
kubernetes: true
app:
weave:
enabled: true
The Prometheus configuration focuses on defining scrape targets and intervals, while Scope's configuration is more centered around enabling specific probes and features for container and microservices monitoring.
Prometheus excels in metrics collection and analysis, offering a robust solution for monitoring and alerting. Scope, on the other hand, provides a more visual and real-time approach to understanding container-based applications and their network interactions. The choice between the two depends on specific monitoring needs and preferences.
Your window into the Elastic Stack
Pros of Kibana
- More comprehensive data visualization and analytics capabilities
- Integrates seamlessly with the Elastic Stack for powerful log and metrics analysis
- Larger community and ecosystem with extensive plugins and extensions
Cons of Kibana
- Steeper learning curve and more complex setup compared to Scope
- Requires additional components (Elasticsearch) for full functionality
- Less focused on real-time container and microservices monitoring
Code Comparison
Kibana (TypeScript):
export class DashboardContainer extends React.Component {
render() {
return (
<EuiPage className="dashboardPageWrapper">
<EuiPageBody>
<DashboardGrid {...this.props} />
</EuiPageBody>
</EuiPage>
);
}
}
Scope (Go):
func (r *Registry) WalkTopologies(f func(string, *Topology)) {
r.RLock()
defer r.RUnlock()
for name, t := range r.topologies {
f(name, t)
}
}
While both projects serve different purposes, this comparison highlights Kibana's focus on data visualization and analytics, contrasted with Scope's emphasis on container and microservices monitoring. Kibana offers more comprehensive features but requires a more complex setup, while Scope provides a more targeted solution for real-time monitoring of containerized environments.
Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.
Pros of Telegraf
- More versatile data collection: Supports a wide range of input plugins for various data sources
- Extensive output options: Can send data to multiple time-series databases and other destinations
- Lightweight and efficient: Designed for minimal resource usage and high performance
Cons of Telegraf
- Lacks built-in visualization: Requires additional tools for data visualization
- More complex setup: May require more configuration for specific use cases
- Limited real-time monitoring: Primarily focused on data collection rather than live system monitoring
Code Comparison
Telegraf configuration example:
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
report_active = false
Scope configuration example:
probe:
docker: true
kubernetes: true
processes: true
Key Differences
- Purpose: Telegraf is a data collection agent, while Scope is a monitoring and visualization tool
- Scope: Telegraf focuses on metrics collection, while Scope provides a broader view of system topology
- Visualization: Scope offers built-in visualization, whereas Telegraf requires external tools
- Target users: Telegraf is more suitable for DevOps and SREs, while Scope caters to both developers and operations teams
Use Cases
- Telegraf: Ideal for collecting and forwarding metrics to time-series databases
- Scope: Better suited for real-time monitoring and troubleshooting of containerized environments
Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
Pros of Glances
- Lightweight and easy to install, with support for various operating systems
- Provides a comprehensive view of system resources in a single terminal window
- Offers both CLI and web-based interfaces for monitoring
Cons of Glances
- Limited network visualization capabilities compared to Scope's container-centric approach
- Lacks advanced features for microservices and container orchestration environments
- Does not provide real-time topology mapping of applications and services
Code Comparison
Glances (Python):
def get_stats():
stats = {}
stats['cpu'] = psutil.cpu_percent(interval=1)
stats['memory'] = psutil.virtual_memory().percent
stats['disk'] = psutil.disk_usage('/').percent
return stats
Scope (Go):
func (r *Registry) WalkTopology(f func(string, Node)) {
r.RLock()
defer r.RUnlock()
for _, node := range r.nodes {
f(node.ID, node)
}
}
Glances focuses on system-level metrics using Python's psutil
library, while Scope emphasizes topology mapping and container-centric monitoring using Go. Glances provides a straightforward approach to resource monitoring, whereas Scope offers more advanced features for complex containerized environments and microservices architectures.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
DEPRECATED: Weave Scope - Troubleshooting & Monitoring for Docker & Kubernetes
PLEASE NOTE, THIS PROJECT IS NO LONGER MAINTAINED. More details available here.
Weave Scope automatically generates a map of your application, enabling you to intuitively understand, monitor, and control your containerized, microservices-based application.
Understand your Docker containers in real time
Choose an overview of your container infrastructure, or focus on a specific microservice. Easily identify and correct issues to ensure the stability and performance of your containerized applications.
Contextual details and deep linking
View contextual metrics, tags, and metadata for your containers. Effortlessly navigate between processes inside your container to hosts your containers run on, arranged in expandable, sortable tables. Easily find the container using the most CPU or memory for a given host or service.
Interact with and manage containers
Interact with your containers directly: pause, restart, and stop containers. Launch a command line. All without leaving the scope browser window.
Extend and customize via plugins
Add custom details or interactions for your hosts, containers, and/or processes by creating Scope plugins. Or, just choose from some that others have already written at the GitHub Weaveworks Scope Plugins organization.
Who is using Scope in production
- Apester
- Deepfence in ThreatMapper and ThreatStryker
- MayaData in MayaOnline / MayaOnPrem
- Weaveworks in Weave Cloud
If you would like to see your name added, let us know on Slack, or send a PR please.
Getting Started
Ensure your computer is behind a firewall that blocks port 4040 then,
sudo curl -L git.io/scope -o /usr/local/bin/scope
sudo chmod a+x /usr/local/bin/scope
scope launch
This script downloads and runs a recent Scope image from Docker Hub. Now, open your web browser to http://localhost:4040.
For instructions on installing Scope on Kubernetes, DCOS, or ECS, see the docs.
Reach Out
We are a very friendly community and love questions, help and feedback.
If you have any questions, feedback, or problems with Scope:
- Docs
- Read the Weave Scope docs
- Check out the frequently asked questions
- Learn more about how the Scope community operates
- Join the discussion
- Invite yourself to the Weave community Slack
- Ask a question on the #scope Slack channel
- Send an email to Scope community group
- Meetings and events
- Join the Weave User Group and get invited to online talks, hands-on training and meetups in your area
- Join (and read up on) the regular Scope community meetings - currently on hold.
- Contributing
- Find out how to contribute to Scope
- File an issue or make a pull request for one of our good first issues
Your feedback is always welcome!
We follow the CNCF Code of Conduct.
License
Scope is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Find more details about the licenses of vendored code in VENDORED_CODE.md.
Top Related Projects
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Architected for speed. Automated for easy. Monitoring and troubleshooting, transformed!
The Prometheus monitoring system and time series database.
Your window into the Elastic Stack
Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.
Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot