You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

The goal of this project is to centrally collect TIER data about Grouper deployment to help improve Grouper and give information to TIER constituents about Grouper usage.

For TechEx 2016 we would like to have basic information transmitted back to TIER on a daily basis.

 

  • Grouper has a central database which can store information for a Grouper env at an institution
  • Each JVM process (API, WS, UI, Daemon, GSH, etc) can periodically check in to the DB (e.g. every 6 hours)
    • Let it know its UUID, type of process, number of tx of various types since last checkin, version, patch level, uptime
  • Daily a new instrumentation daemon could collate information in the database, and glean other information (e.g. is PSP or PSPNG running) and after consulting the discovery service, send a report to the TIER collector

Discovery service

{
  serviceEnabled: true,
  endpoints: [
    {
       uri: "https://tiercollector1.internet2.edu/v1/collector"
    },
    {
       uri: "https://tiercollector2.internet2.edu/v1/collector"
    }
  ]
}

 

Collector

  • Simple REST endpoint that takes any name/value pairs in JSON in a simple structure of single valued strings
  • The collector can just store each resource it gets and doesnt care what the attributes are, so the components can change their data as they need
  • Of course the reporting and processing needs to take the attributes and values into account
  • e.g. submission: POST https://tiercollector1.internet2.edu/v1/collector/dailyReport
{
  reportFormat: "1",
  component: "grouper",
  institution: "Penn",
  environment: "prod",
  version: "2.3.0",
  patchesInstalled: "api1, api2, api4, ws2, ws3",
  wsServerCount: "3",
  platformLinux: "true",
  uiServerCount: "1",
  pspngCount: "1",
  provisionToLdap: "true",
  registrySize: "extraLarge",
  transactionCountMemberships: "medium",
  transactionCountPrivileges: "high",
  transactionCountPermissions: "low"
}

 

 

  • No labels