Setup

Connect Looker

Lighthouse reads your Looker semantic layer, so the measures your team already defined in LookML become monitored metrics — same joins, same filters, same numbers as your dashboards. Setup takes about 20 minutes and most of it needs Looker Admin access.

Important
This connection is read-only. Lighthouse never writes to Looker, never changes your LookML, and never creates or edits dashboards, Looks, or any other content in your instance.
Note
Each step below says who performs it. Steps 2 to 7 need Looker Admin — if that isn’t you, send this page to whoever administers Looker at your company. Start early: the network access in step 7 sometimes needs a security review, and it’s the one part that can take days rather than minutes.
1

Decide which model to connect

You 5 minutes

You don’t need to connect all of Looker. Pick one model to start — whichever one holds the metrics you actually care about watching. Sales, revenue, and product usage models are the usual starting points.

To find the model name: open any Explore you use in Looker and look at the URL. It reads /explore/model_name/explore_name — the first part is the model.

Done when
You have a model name written down, e.g. ecommerce.
2

Create a service account

Looker admin 2 minutes

Lighthouse connects as its own account rather than borrowing a real person’s login. Access is then easy to audit and easy to revoke, and nothing breaks when someone leaves the company.

Looker has a dedicated account type for exactly this. On the Users page, the Add button opens a dropdown — choose Service Account, not Users.

Admin panelUsersAddService Account

Name it Lighthouse. Leave the Create default set of API credentialsswitch turned on — it’s on by default, and it saves you a step later. Then save.

Note
Since the Looker 26.8 release in May 2026, admins can no longer manage API credentials for normal user accounts — only for service accounts. So this is not just the tidier option any more, it’s the one that works.
Note
The account uses one Looker license seat. Worth flagging to whoever owns your Looker contract so the bill isn’t a surprise.
Done when
A Lighthouse entry appears under the Service Accounts tab, with no roles assigned yet.
3

Create a permission set

Looker admin 3 minutes

A permission set is a named list of what an account can do. You’re creating one that allows reading and querying, and nothing else.

Admin panelUsersRolesAdd Permission Set

Name it Lighthouse Read Only, then tick these boxes in this order — Looker greys out a permission until its parent is ticked:

PermissionNeeded?What it allows
access_dataRequiredSee any data at all — everything else depends on it
see_looksRequiredRequired before explore can be ticked
exploreRequiredRun queries against your Explores
see_lookmlRecommendedRead how each metric is defined
see_user_dashboardsOptionalImport existing dashboard tiles as monitors
see_sqlOptionalRead the SQL behind a metric

Leave everything else switched off. In particular develop, deploy, manage_models, administer, save_content, and anything that sends or schedules content.

Note
If your security policy rules out see_lookml, the connection still works fine. You only lose the ability for Lighthouse to warn you when someone changes a metric definition underneath a live monitor.
Done when
Lighthouse Read Only appears in your list of permission sets.
4

Create a model set

Looker admin 2 minutes

A model set is a named list of which models an account can see. This is what keeps Lighthouse scoped to the model chosen in step 1 rather than everything in Looker.

Admin panelUsersRolesAdd Model Set

Name it Lighthouse Models and select only the model from step 1. You can add more later without redoing any of this.

Done when
Lighthouse Models appears in your list of model sets, containing one model.
5

Create the role and assign it

Looker admin 3 minutes

A role combines the two things you just made — what the account can do, and which models it can see — and attaches them to the service account.

Admin panelUsersRolesAdd Role

Name it Lighthouse. Set the permission set to Lighthouse Read Only and the model set to Lighthouse Models, then assign it to the service account from step 2.

Important
Make sure that account has no other roles. Looker roles stack — if a default role is also attached, the account gets both sets of permissions combined and the restriction you just built does nothing.
Done when
Opening the service account shows exactly one role: Lighthouse.
6

Copy the API credentials

Looker admin 1 minute

These are the username and password Lighthouse uses to connect. Looker calls the two halves a Client ID and a Client Secret.

If you left the credentials switch on in step 2, a key already exists and you just need to open it. Service accounts live under their own tab on the Users page:

Admin panelUsersService Accounts[Lighthouse]API KeysManage

If no key is listed, click Create New API Key.

Important
The secret is shown once and cannot be retrieved afterwards. Paste it straight into Lighthouse rather than into email or chat — if it does end up in a message, delete it and generate a replacement key.
Done when
You have two values: a Client ID and a Client Secret.
7

Network access

Looker admin 5 minutes, if needed

Many companies restrict Looker so it only accepts connections from approved locations. What you need to do here depends entirely on how your Looker is hosted — and the two cases are genuinely different, so check which one you are before following either.

If you use Looker (Google Cloud core)

There is no IP Allowlist page in the admin panel on these instances — access is controlled in Google Cloud rather than in Looker. What matters is the connection type your instance was created with:

Connection typeWhat it means for Lighthouse
PublicWorks immediately, nothing to configure
Public secure or hybridAdd the ranges below to the instance's IP allowlist in Google Cloud
Private IP onlyNot reachable from outside your VPC — talk to us before going further

If you use customer-hosted Looker

The admin panel does have an IP allowlist page:

Admin panelServerIP Allowlist

If the allowlist is disabled, skip this step. If it is enabled, add both ranges below.

Important
Each allowlist rule specifies whether it applies to the Looker UI, the Looker API, or both. The rule for Lighthouse must cover API access — a UI-only rule looks correct in the list but silently blocks the connection.

The ranges to add

74.220.48.0/24
74.220.56.0/24
Note
These are shared ranges belonging to our hosting provider. If your security team requires addresses used only by Lighthouse, contact us — we can provision dedicated egress IPs for your account.
Done when
Either no allowlist is in use, or both ranges appear in it with API access permitted.
8

Connect in Lighthouse

You 2 minutes

In Lighthouse, go to /data-sources, click New Data Source, and choose Looker.

FieldRequiredDescription
baseUrlYesYour Looker web address, e.g. https://yourcompany.cloud.looker.com — copy it from your browser
portNoLeave blank unless your admin says Looker is self-hosted, in which case it's usually 19999
clientIdYesThe Client ID from step 6
clientSecretYesThe Client Secret from step 6 — stored encrypted
modelYesThe model name from step 1

Click Test Connection. Lighthouse signs in, lists the Explores it can see, and refuses to save if anything is wrong — so a green result means the whole chain works.

Done when
Your Explores appear as datasets, each with its measures listed as available metrics.
9

Check the numbers match

You 10 minutes

Don’t skip this. Before you build monitoring on top of the connection, confirm Lighthouse is seeing what your team sees.

Pick one metric you know well — something with a number you could recite from memory. Create it in Lighthouse, then open the equivalent tile in Looker for the same date range and compare.

If they match, you’re done and everything else will match too. If they don’t, it’s almost always row-level security — see access filters below.

Done when
One known metric shows the same number in both tools.

Three things worth knowing

If your numbers don’t match

Some companies restrict what each person sees in Looker — a regional manager sees only their region, for example. This is called row-level security, and it follows the account making the request. Since Lighthouse connects as its own service account, that account needs to be told what it’s allowed to see, or it will quietly read a filtered slice of the data.

The symptom is unmistakable: Lighthouse consistently reports lower numbers than your dashboards. The fix is for your admin to set the right values in the User attributessection of the service account’s edit page:

Admin panelUsersService Accounts[Lighthouse]User attributes

If your data updates on a schedule

Some Explores are built on tables Looker rebuilds periodically rather than reading live — your admin will call these PDTs. If a metric sits on one, Lighthouse can only detect a change after the rebuild happens. A metric checked hourly on a table that rebuilds nightly will only ever move once a day.

This isn’t a problem, but it’s worth knowing before you set an alert expecting to hear within the hour. Ask your admin which of your Explores use PDTs and how often they refresh.

What this costs you in Looker

Each check Lighthouse runs is one query through Looker to your warehouse. Lighthouse only pulls the periods that have changed rather than re-reading full history every time, so normal usage sits comfortably inside Looker’s concurrency limits, which default to around 15 to 25 simultaneous queries per account per connection. If your instance also has an API rate limit configured, tell us the value and we will pace requests to fit. You will not notice the load, but your warehouse bill will see it, the same as any other scheduled query.

What Lighthouse stores

Lighthouse stores the structure of your LookML — Explore names, field names, labels, descriptions, and how each measure is defined — plus the aggregated numbers used to draw your metric charts. It does not store raw row-level data from your warehouse.

Credentials are encrypted at rest. For our full security posture and compliance status, see the Trust Center.

If something goes wrong

What you seeWhat it usually means
The connection test just hangs, then times outThe IP allowlist in step 7. This is by far the most common cause — check it first.
"Invalid credentials" or a 401 errorThe Client ID or Secret has a typo, or the key was revoked. Ask your admin to generate a new one.
It connects, but no Explores show upThe model set doesn't include the model you entered, or the role was never assigned to the service account.
Explores appear but some detail is missingThe see_lookml permission wasn't ticked. Harmless — you only lose change detection.
Numbers are lower than your dashboardsRow-level security. See "If your numbers don't match" above.
Nothing connects and your Looker is self-hostedThe port field is probably missing. Self-hosted Looker usually serves its API on 19999.

For anything not listed here, see Troubleshooting or get in touch — we can usually tell from the error message which step went wrong.