Using a single App Insights resource and differentiating based on a custom property is a valid solution, especially if setting separate key is not reasonable based on your current architecture.
The
official best practice is to use a separate key for independent applications, but a single key for different components in the same process. This commonly comes into play when talking about dev, test, and production. From what you've said, it sounds
like your scenario could fall under either category depending on how you look at it.
The only serious downside I can think of is if there is something about the instance settings you need to customize for each customer. Things like billing, continuous export, and data retention policies are set on an instance of App Insights as a whole so
you wouldn't be able to customize them without separate environments.