mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 20:41:11 +08:00
FEATURE: Track API and user API requests (#19186)
Adds stats for API and user API requests similar to regular page views. This comes with a new report to visualize API requests per day like the consolidated page views one.
This commit is contained in:
@ -100,6 +100,33 @@ RSpec.describe Middleware::RequestTracker do
|
||||
expect(ApplicationRequest.page_view_crawler.first.count).to eq(1)
|
||||
end
|
||||
|
||||
it "logs API requests correctly" do
|
||||
data = Middleware::RequestTracker.get_data(
|
||||
env("_DISCOURSE_API" => "1"), ["200", { "Content-Type" => 'text/json' }], 0.1
|
||||
)
|
||||
|
||||
Middleware::RequestTracker.log_request(data)
|
||||
|
||||
data = Middleware::RequestTracker.get_data(
|
||||
env("_DISCOURSE_API" => "1"), ["404", { "Content-Type" => 'text/json' }], 0.1
|
||||
)
|
||||
|
||||
Middleware::RequestTracker.log_request(data)
|
||||
|
||||
data = Middleware::RequestTracker.get_data(
|
||||
env("_DISCOURSE_USER_API" => "1"), ["200", {}], 0.1
|
||||
)
|
||||
|
||||
Middleware::RequestTracker.log_request(data)
|
||||
CachedCounting.flush
|
||||
|
||||
expect(ApplicationRequest.http_total.first.count).to eq(3)
|
||||
expect(ApplicationRequest.http_2xx.first.count).to eq(2)
|
||||
|
||||
expect(ApplicationRequest.api.first.count).to eq(2)
|
||||
expect(ApplicationRequest.user_api.first.count).to eq(1)
|
||||
end
|
||||
|
||||
it "can log Discourse user agent requests correctly" do
|
||||
# log discourse api agents as crawlers for page view stats...
|
||||
data = Middleware::RequestTracker.get_data(env(
|
||||
|
Reference in New Issue
Block a user