Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

Partial Request and Ambari REST API

avatar
New Contributor

Hello everyone,

I am trying to get a list of alerts via REST API but I want it to be limited to only specific fields.

I am currently able to get all available information from the alerts, ie:

{
  "href" : "http://ambari_server:8080/api/v1/clusters/appslogs/alerts?Alert/state.in(WARNING,CRITICAL,UNKNOWN)&Alert/maintenance_state=OFF&fields=*",
  "items" : [
    {
      "href" : "http://ambari_server:8080/api/v1/clusters/appslogs/alerts/23",
      "Alert" : {
        "cluster_name" : "appslogs",
        "component_name" : "AMBARI_AGENT",
        "definition_id" : 50,
        "definition_name" : "ambari_agent_disk_usage",
        "host_name" : "host1.local",
        "id" : 23,
        "instance" : null,
        "label" : "Host Disk Usage",
        "latest_timestamp" : 1456931060177,
        "maintenance_state" : "OFF",
        "original_timestamp" : 1454589680156,
        "scope" : "HOST",
        "service_name" : "AMBARI",
        "state" : "WARNING",
        "text" : "Capacity Used: [71.56%, 6.0 GB], Capacity Total: [8.3 GB], path=/usr/hdp. Total free space is less than 2.0 GB"
      }

Does anybody know how to get ONLY state,host and text fields in response?

I tried the following request but it does not work:

http://ambari_server:8080/api/v1/clusters/appslogs/alerts?Alert/state.in(WARNING,CRITICAL,UNKNOWN)&A...

What am I missing?

Apache Ambari Version: 2.2.0.0

1 ACCEPTED SOLUTION

avatar

@Sunella Zag It looks like alerts resource doesn't allow filtering of fields. Only fields=* seems to be working. Specifying any fields results in default fields.

http://ambari_server:8080/api/v1/clusters/appslogs/alerts?Alert/state.in(WARNING,CRITICAL,UNKNOWN)&A...

For services resource, I was able to specify a list of fields and get only required fields in my response.

http://ambari_server:8080/api/v1/clusters/hdp_dev/services/HDFS?fields=alerts_summary

so this seems to be a problem only with alert resource.

View solution in original post

2 REPLIES 2

avatar

@Sunella Zag It looks like alerts resource doesn't allow filtering of fields. Only fields=* seems to be working. Specifying any fields results in default fields.

http://ambari_server:8080/api/v1/clusters/appslogs/alerts?Alert/state.in(WARNING,CRITICAL,UNKNOWN)&A...

For services resource, I was able to specify a list of fields and get only required fields in my response.

http://ambari_server:8080/api/v1/clusters/hdp_dev/services/HDFS?fields=alerts_summary

so this seems to be a problem only with alert resource.

avatar

@Sunella Zag Following fields are defaults and will be included in all responses

"cluster_name" , "definition_id", "definition_name" , "host_name" , "id" , "service_name" 

You can include any additional fields using

http://ambari_server:8080/api/v1/clusters/appslogs/alerts?Alert/state.in(WARNING,CRITICAL,UNKNOWN)&A...lert/state,Alert/text