2016-08-09 194 views
3

Ich verwende das Logstash Input Plugin exec, um regelmäßig einen Befehl auszuführen, um JIRA-Daten zu erhalten. Selbst wenn ich maxResults = 99999 einstelle, werden nur 1000 Ergebnisse zurückgegeben. Hier ist mein Code jetzt:Warum kann ich nicht mehr als 1000 Ergebnisse für JIRA abfragen?

input { 
    exec { 
     command => "curl -u username:password https://mycompany.atlassian.net/rest/api/latest/search?project=project&maxResults=8500" 
     interval => 300 
     type => "issues" 
    } 


} output { 
    elasticsearch { 
     hosts => "localhost:9200" 
     index => "jira" 
    } 
} 

Ich fand online, dass, wenn Sie um 10 execs laufen, und Sie setzen startat auf 0, 1000, 2000, etc., erhalten Sie rund 10000 Antworten. Ist das schneller als nur eine Exec, die 8000 Anfragen abfragt? Wie gebe ich mehr als 1000 Antworten mit 1 Exec zurück?

Antwort

2

@ alperts Antwort ist richtig, aber ich werde ein bisschen mehr Details hinzufügen.

JIRAs REST-API (und die meisten Rest-APIs im Allgemeinen) unterstützen die Paginierung, um zu verhindern, dass Clients der API die Anwendung zu stark belasten können. Das bedeutet, dass Sie nicht alle Ausgabedaten mit einem REST-Aufruf abrufen können.

Sie können nur abrufen „Seiten“ von maximal 1000 Fragen, die die Paging-Abfrage-Parameter startat und maxResults. Siehe die Paginierung Abschnitt here.

Wenn Sie einen JIRA-Standalone-Server ausführen, können Sie die maximale Anzahl von Ergebnissen, die JIRA zurückgibt, optimieren, für eine Cloud-Instanz ist dies jedoch nicht möglich. Siehe hierzu KB article für weitere Informationen.

Ihre Logstash-Konfiguration zeigt, dass Sie regelmäßig alle JIRA-Probleme eines Projekts in ElasticSearch ablegen. Es gibt wahrscheinlich bessere Möglichkeiten, um das zu erreichen, was Sie zu tun versuchen, als den JIRA GET/issue-REST-API-Aufruf zu verwenden. Wofür verwenden Sie diese Daten in ElasticSearch?

Möglicherweise gibt es eine Möglichkeit zu tun, was Sie in JIRA benötigen, oder Sie können nach einer bequemeren Möglichkeit suchen, alle JIRA-Daten zu exportieren, z. mit dem export functionality.

1
<?php 
$username="JIRA Email"; 
$password="JIRA Password";   
$handle = curl_init(); 
$project_url="https://jirasite.atlassian.net/rest/api/2/search?jql=project='project id'&maxResults=100"; 
$project_url=trim($project_url); 
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, "GET"); 
curl_setopt_array($handle, array(
    CURLOPT_URL => $project_url, 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_FOLLOWLOCATION => true, 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_HTTPHEADER => array("content-type:application/json"), 
    CURLOPT_HEADER => true, 
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_ENCODING => '', 
    CURLOPT_HTTPAUTH => CURLAUTH_BASIC, 
    CURLOPT_USERPWD => $username . ':' . $password 
    )); 
    $response = curl_exec($handle); 
    print_r($response); 

> Antwort Wille seines { "erweitern": "Schema, Name", "startat": 0, "maxResults": 100, "total": 52 "Fragen": [{“ expand ": ............