Socorro:ElasticSearch API
Middleware API for ElasticSearch
This is a draft of the new API for querying ElasticSearch through the middleware API of Socorro.
The Middleware API aims to separate the front-end from the back-end by providing an interface to access the data. By doing so, the front-end will not have to care about the storage system, and will retrieve data from Hbase, PostgreSQL or ElasticSearch in a consistent and simple way, through our REST API.
The API is separated in several categories / entry points:
- /query
- /search
- /report
- /crash
- /stats
This categories are explained below.
Query
Description
Low level query, just sends a JSON query to ES directly, and returns the result of this query.
API Spec
HTTP request: POST
Data: JSON query to send to ElasticSearch
URI: /query/[(types)/]
- types: Types of data we are looking into. If omitted, default value is _all. Several types can be specified, separated by a + symbol.
Search
Description
Searches for some terms in ES.
API Spec
HTTP request: GET
URI: /search/(types)/for/(terms)/in/(fields)/product/(product)/version/(version)/os/(os_name)/from/(from_date)/to/(to_date)/
- types: Type of data we are looking into. Can be set to _all to search into all types. Several types can be specified, separated by a + symbol.
- terms: Terms we are search for. Each term must be URL encoded. Several terms can be specified, separated by a + symbol.
- fields: Fields we are searching in. Several fields can be specified, separated by a + symbol.
- product: The product we are interested in. (e.g. Firefox, Fennec, Thunderbird... )
- version: Version of the product. Can be set to _all to search into all versions.
- os_name: Name of the Operating System. (e.g. Windows, Mac, Linux... )
- from_date: Search for crashes that happened after this date.
- to_date: Search for crashes that happened before this date.
Report
Description
Get a specific report.
API Spec
HTTP request: GET
URI: /report/...
Crash
Description
Searches a crash by it's OOID and returns it. This query is not supposed to use ES but HBase directly.
API Spec
HTTP request: GET
URI: /crash/(crash_id)
- crash_id: Unique identifier of the crash to retrieve.