Socorro:ElasticSearch API

From MozillaWiki
Revision as of 21:36, 4 May 2011 by Adrigau (talk | contribs) (→‎Middleware API for ElasticSearch: Introducing the API)
Jump to navigation Jump to search

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.