Convert Figma logo to code with AI

weaveworks logoscope

Monitoring, visualisation & management for Docker & Kubernetes

5,849
709
5,849
454

Top Related Projects

63,808

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.

70,358

Architected for speed. Automated for easy. Monitoring and troubleshooting, transformed!

The Prometheus monitoring system and time series database.

19,705

Your window into the Elastic Stack

14,466

Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.

26,263

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:

  1. Install Scope on your Kubernetes cluster:
kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')"
  1. 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
  1. 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

63,808

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.

70,358

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.

19,705

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.

14,466

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
26,263

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

DEPRECATED: Weave Scope - Troubleshooting & Monitoring for Docker & Kubernetes

Circle CI Coverage Status Go Report Card Docker Pulls GoDoc Good first issues

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

Map you architecture

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

Focus on a single container

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

Launch a command line.

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

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:

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.