Graylog2 / Graylog2/graylog2-server

Streams page making a lot of queries to MongoDB collection graylog.sessions

Open
#6,553 1 comment 0 reactions 0 assignees View on GitHub
#L bug triaged
Dominant language
Java
Stars
8.1k
Forks
1.1k
Avg merge
1d 20h
Merged PRs (30d)
217

Description

While investigating the cause of thousands of MongoDB queries per second on office hours, noticed that when Streams page is open in browser, it makes several API calls which appears as a huge spike on metrics of MongoDB queries per second.

## Expected Behavior
One user browsing a Streams page should not cause this much queries to MongoDB. This can be a bigger problem when trying to scale the system for hundreds of users.

## Current Behavior
When keeping Streams page open, browser makes multiple API queries per second (in order to get for example messages/sec metrics for every stream). That seems to cause hundreds of queries to graylog.sessions collection in MongoDB which causes an unnecessary load on the database.

## Possible Solution
Would it be possible to check the session from the database much less frequently ?

## Steps to Reproduce (for bugs)
1. Check number of queries per second with mongostat:
![Screenshot 2019-10-09 at 9 50 33](https://user-images.githubusercontent.com/41315949/66458179-c98ecf00-ea7a-11e9-8197-8f4a20e0c1c7.png)

2. Open Streams page for example in 4 browser windows.

3. Run mongostat again and compare the difference in number of queries per second.
![Screenshot 2019-10-09 at 9 48 43](https://user-images.githubusercontent.com/41315949/66458227-dca19f00-ea7a-11e9-8f18-887971815ee8.png)

When using mongotop with 10 seconds interval, it can be seen that almost 5 seconds from 10 is used to read from collection graylog.sessions:
![Screenshot 2019-10-09 at 9 49 24](https://user-images.githubusercontent.com/41315949/66458280-035fd580-ea7b-11e9-82c8-d6e7d6807e5e.png)

## Context
Trying to figure out the root cause and get rid of the daily spikes on the MongoDB CPU load.

## Your Environment
Some numbers of the environment:
Graylog nodes: 10
Elasticsearch nodes: 73
MongoDB nodes: 3
Streams: 90
Users: 129

* Graylog Version: 3.0.1
* Elasticsearch Version: 6.8.1
* MongoDB Version: 4.0.9
* Operating System: RHEL 7.6
* Browser version: Chrome 77

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.